CakePHP:action名listを呼ぶ方法

cakephpの話。

scaffoldを使っているときだと、action名にlistを指定したら、デフォルトだとコントローラーに紐付くテーブル情報一覧が表示される。しかし、自分でリストをカスタマイズして作りたい場合、action名にlistを指定したら、PHP関数のlistを上書きする扱いになるみたいでダメだった。そこで、どうやったらaction名にlistを指定できるのかを研究したので報告。

<?php
// コントローラー内で行う
class SamplesController extends AppController{
var $scaffold;
function beforeFilter(){
// 親クラスのbeforeFilterの呼び出し
parent::beforeFilter();
// もしもaction名がlistだったら
if($this->action == "list"){
// 自分が呼び出したかったlistの処理をfunction _list()に記述
$this->_list();
$this->render('list');
exit; // exitしないとscaffoldのlistが続けて呼ばれてしまう
}
}
}
?>

これでひとまずOKでした。別にlistというアクション名にこだわらなければ、こんな手間のかかることはしなくてもよいのですが、気になったのでやってしまいました(^^:)


タグ CakePHP, PHP | パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です