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…
…