I love iPhone, Android, Cocos2d-x
CakePHP find や findAll の条件指定にちょっとだけ便利な postConditions
CakePHP の コントローラに postConditions というちょっとだけ便利なメソッドがありました。
cake/libs/controllers.php
function postConditions($data) { if (!is_array($data) || empty($data)) { return null; } $conditions = array(); foreach($data as $model => $fields) { foreach($fields as $field => $value) { $conditions[$model . '.' . $field] = $value; } } return $conditions; }
例えば検索をするフォームなどで User.name で検索するような場合
view で
input('User/name');
と指定すると$this->data は
Array ( [User] => Array ( [name] => 山田 ) )
この $this->data を postConditions に渡すと
$data = $this->postConditions($this->data);
$data は
Array ( [User.name] => 山田 )
となり、このまま find や findAll に渡すことができます。
$this->User->find($data);
参考:CakePHP マニュアル
7.2. コントローラの関数
関連する投稿
One comment
コメントをどうぞ
Additional comments powered by BackType
3withstood…
…