この記事の所要時間: 約 1分39秒
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() { } }
- Newer: php.iniの書き方
- Older: CakePHP 携帯用ビューを表示する
トラックバック:0
- このエントリーのトラックバックURL
- /blog/2006/09/cakephp_no_db_model.html/trackback
- Listed below are links to weblogs that reference
- CakePHPでDBアクセスなしのModelを作る from Shin x blog