создал глобальный слушатель beforeFind () для моих запросов поиска, но для некоторых запросов его нужно отключить.
$ this-> eventManager () -> off () в контроллере не работает. т.е. не отсоединять событие.
В моем файле bootstrap.php:
$modelListerner = new DeletedListener(); //my custom listerner
EventManager::instance()->on(
$modelListerner
);
Вы не можете локально отключить глобальный слушатель, вы должны отключить его глобально, т.е.
EventManager::getInstance()->off(/* ... */);
Однако вы можете подумать о том, может ли передача опций поисковику быть лучшим решением, так что вашим контроллерам не нужно знать о слушателях и т. П., А просто выполнять вызовы find по мере необходимости, например
$Table->find('all', ['doThisAndThat' => false]);
и ваш слушатель сможет действовать соответственно.
Цитата из документов
[…] Любые опции, которых нет в этом списке, будут переданы слушателям beforeFind, где они могут быть использованы для изменения объекта запроса.
Других решений пока нет …