Документы нуждаются в некотором исправлении, так как в этом есть разные вещи, возвращающие данные не будут иметь никакого значения, так как возвращаемое значение никогда не используется, также вы не можете реально использовать событие beforeFind
для настройки кэширования. , он ограничен тем, что он бесполезен, поскольку событие запускается только для некешированных запросов, а для тех, которые запускаются после , проверяется кэш.
как говорится, остановка операции поиска возможна , предоставляя пользовательские результаты, не возвращая данные, а устанавливая их через Query::setResult()
, который ожидает экземпляр \Cake\Datasource\ResultSetInterface
.
An Примером может быть:
$results = [];
$resultSet = new \Cake\Datasource\ResultSetDecorator($results);
$query->setResult($results);
$event->stopPropagation();
Это приведет к тому, что запрос вернет пустой набор результатов (ResultSetDecorator
- это просто коллекция, которая реализует ResultSetInterface
), что является ближайшим к «остановке» запрос.