2015-01-12 2 views
0

Я хотел бы спросить, есть ли способ (допустим, в классе модели) установить условие, которое должно быть в каждом отдельном запросе.Условие в каждом запросе, CakePHP 2.5.4

Пример: Модель A имеет поле удивительное. Я хочу, чтобы при использовании $ this-> A-> find ('all') для запроса sql с WHERE awesome = 1, но я хочу, чтобы это условие находилось в каждом поиске без указания его каждый раз.

Насколько я искал это возможно при указании ассоциации между двумя моделями

+0

возможно дубликат [Определение глобального условия в модели] (http://stackoverflow.com/questio ns/17543774/define-global-conditions-in-model) – ndm

+0

Вы можете ознакомиться с идеями, обсуждаемыми здесь: [cakephp-and-namedscope-for-dry-conditions] (http://www.dereuromark.de/2014/02/15/cakephp-and-namedscope-for-dry-conditions /) – mark

ответ

3

beforeFind Использование обратного вызова в AppModel.php.
Вы можете изменить $ query params ...

-1

Чтобы использовать условия в CakePHP

$client = $this->Client->find('all', array('conditions' =>array('LastName like' => "%something%"))); 
+1

Прошу прощения, но это не ответ. Я ищу. Это условия для одной находки, я хочу, чтобы они были глобальными. – backman

1

Вы хотите, чтобы create a custom Behavior.

Затем каждая модель, которую вы хотели бы добавить, что условие должно использовать такое поведение (через переменную $actsAs.

В поведении, вы можете добавить метод beforeFind(). В этом методе, вы можете добавить что вы хотите в массив "условия.

Поэтому каждый find() запускается на моделях будет работать, что beforeFind(), и получить условия, добавленные к нему перед запуском фактического находку.

Смежные вопросы