2011-08-14 3 views
0

私はCakePHPの新機能ですが、モデルとそれに関連するすべてのモデルを簡単に選択できるというのは本当に楽しいですが、もっと簡単な方法があれば分かりません各モデルから選択されたすべてのフィールド。CakePHPのデフォルトモデルフィールド

たとえば、モデルデータを取得するときにすべてのフィールドを自動的に選択するのではなく、毎回fields => array(...)を指定することなく、どのフィールドを指定できるかデフォルトで選択されていますか?

答えて

0

はい、「フィールド」キーが設定されている場合はそのモデルを確認し、そうでない場合はそこに設定できます。しかし、私はデバッグをもっと綺麗に見せる以外に、それを行うことでパフォーマンスがほとんど向上しないと言います。モデルに変更を加えなければならない場合は、もう1つ注意が必要です。

+0

同意しない、セキュリティ上の利益がある... –

0

あなたが収容可能の行動を見てしたい - http://book.cakephp.org/view/1323/Containable

それは非常によく文書化されていますが、あなたの簡単な概要を与えることを

$this->Article->find('all', array(
    'contain' => array(
    'Author.name', 
    'Category' => array(
     'name', 
     'icon' 
    ) 
) 
)); 

だけと一緒に、すべての記事データを返します3つの他のフィールド。

私は、最も単純なものを除いてすべてで使用しているので、Containerが私のapp_model定義に追加されました。

ます。また、モデルで独自のfindメソッドを作成することができ
1

はコントローラで
function findSelected($options = array()) { 
$options['fields'] = array('id','name'); 
return $this->find('all', $options); 
} 

$this->Model->findSelected(array('order' => 'id ASC')); 

findSelected方法でオプションの配列をマージするとしても立派、そしてあなたも提供することができますオンザフライで追加のフィールド。