Home > CakePHP | PHP > CakePHPでDBアクセスなしのModelを作る

CakePHPでDBアクセスなしのModelを作る

この記事の所要時間: 139

CakePHPのmodelはDBのテーブルと1対1になる事が想定されています。ただシステムを構築する際はこのような単純なmodelだけでは使い勝手が悪い場合があります。そこでDBアクセス無しのmodelの作成方法を模索してみました。

フレームワークのソースを見たところmodelの$useTableにfalseをいれておけば良いようです。

[app/models/no_db.php]

<?php
class NoDb extends AppModel
{
  $useTable = false;
}
?>

では、modelなしのcontrollerはというと・・・フレームワークを見る限りでは方法は無さそうですね。ただcontrollerの$nameでmodel名を指定する事ができるので、これにダミーのmodelを指定すれば、modelを新たに作らずにcontroller・ビューファイルを追加する事が可能です。

[app/controllers/no_my_model_controller.php]

<?php
class NoMyModelController extends AppController
{
  var $name = 'NoDb';

  function index() {
    $this->viewPath = 'no_my_model'; // ビューファイルディレクトリを指定
  }
}
?>

index()内のviewPathの設定を行わないと$nameの値でビューファイルディレクトリ名が決定されてしまうので注意が必要です。(ビューファイルもmodel同様に共通で良ければこの行は必要ありません。)

修正:2006/09/15
modelなしのcontrollerも作れますね。controllerの$usesをarray()かnullにすれば良いようです。

class MyController extends AppController
{
    // var $uses = null; works too
    var $uses = array();

    function index()
    {
    }
}

from: cakebaker » A controller without a model

Pocket

follow us in feedly

トラックバック:0

このエントリーのトラックバックURL
http://www.1x1.jp/blog/2006/09/cakephp_no_db_model.html/trackback
Listed below are links to weblogs that reference
CakePHPでDBアクセスなしのModelを作る from Shin x blog

Home > CakePHP | PHP > CakePHPでDBアクセスなしのModelを作る

検索
フィード
メタ情報

Return to page top