CakePHPでlistアクションを追加できない?

CakePHPでlistアクションがつくれない?CakePHPであるアイテムのリストを出力するアクションを実装しようとして /item/listでアクセスできるようにItemControllerにlistアクションを追加したらエラーになってしまいました。

"syntax error, unexpected T_LIST, expecting T_STRING"

なんじゃこれ?っておもって調べてみたらPHPの予約語にあたってしまったようです。

PHP: キーワードのリスト – Manual

しっかりlist()が掲載されてます。PHPの予約語はクラス名、関数名には使えないとかいてありますね。エラーになったのでメソッド名もNGってことですね。

今回はプログラムの可読性を考えてアクション名をlistから変更したのですが、どうしてもURLを/listにしたい場合はroutesをいじることで対応できます。

アクション名を list_actionしておいて app/config/routes.phpで下記の様な記述を追加すればOK.

Router::connect('/:controller/list', array('action' => 'list_action));

ただ命名規則からはずれたアクション名やコントローラが増えると混乱の元になるので、アクション名変更する方が後々コード読みやすくいいかなって思います