Если вы хотите выполнить какой-то код перед или после действия модели – используйте колбэки модели. Эти функции могут быть определены в классах моделей (включая класс AppModel ).
Вызывается перед любым, относящимся к поиску, действием. Параметр $queryData содержит информацию о текущем запросе: условия, поля и прочее.
Если вы не хотите, чтобы операция поиска выполнилась (возможно из-за каких-то опций $queryData ), то возвращайте false. Иначе, возвращайте, возможно измененный, параметр $queryData, или что-либо другое, что вы хотите передать для поиска.
Вы можете использовать этот колбэк для ограничения действий, в зависимости от роли пользователя. Или сделать кэширование на основе текущей загрузки.
afterFind(array $results, bool $primary)
Используйте этот колбэк для изменения результатов, которые вернула операция поиска; или для вставки любого другого кода, который нужно выполнить после поиска. Параметр $results содержит, данные возвращенные поисковым действием, например:
<?
$results = array(
0 => array(
'ModelName' => array(
'field1' => 'value1',
'field2' => 'value2',
),
),
);
?>
Возвращаемое значение для этого колбэка – возможно измененные, результаты операции поиска, запустившей этот колбэк.
Если $primary = false, то формат $results будет немного отличным, от ожидаемого; вместо обычного результата, который вы получаете после find операции, вы получите такой:
<?
$results = array(
'field_1' => 'value',
'field_2' => 'value2'
);
?>