Home PageКаталог Изменения НовыеКомментарии Пользователи Регистрация
CakePHP: Manual/Developing/Models/Callbacks ...
Это старая версия Manual/Developing/Models/Callbacks за 2009-03-01 18:32:02..

Колбэки


Если вы хотите выполнить какой-то код перед или после действия модели – используйте колбэки модели. Эти функции могут быть определены в классах моделей (включая класс AppModel ).



beforeFind


beforeFind(mixed $queryData)

Вызывается перед любым, относящимся к поиску, действием. Параметр $queryData содержит информацию о текущем запросе: условия, поля и прочее.


Если вы не хотите, чтобы операция поиска выполнилась (возможно из-за каких-то опций $queryData ), то возвращайте false. Иначе, возвращайте, возможно измененный, параметр $queryData, или что-либо другое, что вы хотите передать для поиска.


Вы можете использовать этот колбэк для ограничения действий, в зависимости от роли пользователя. Или сделать кэширование на основе текущей загрузки.



afterFind


afterFind(array $results, bool $primary)


Используйте этот колбэк для изменения результатов, которые вернула операция поиска; или для вставки любого другого кода, который нужно выполнить после поиска. Параметр $results содержит, данные возвращенные поисковым действием, например:


<?
$results 
= array(
  
=> array(
    
'ModelName' => array(
      
'field1' => 'value1',
      
'field2' => 'value2',
    ),
  ),
);

?>


Возвращаемое значение для этого колбэка – возможно измененные, результаты операции поиска, запустившей этот колбэк.


Если $primary = false, то формат $results будет немного отличным, от ожидаемого; вместо обычного результата, который вы получаете после find операции, вы получите такой:


<?
$results 
= array(
  
'field_1' => 'value',
  
'field_2' => 'value2'
);
?>


 
Комментарии
реально очень удобные действия
214.206.150.178.triolan.net (2012-01-22 17:03:56)
Добавить комментарий:

Файлов нет. [Показать файлы/форму]