У меня проблема с реализацией плагина friendsofcake / crud , версия 5.4.1, при чистой установке CakePHP 3.5 с прослушивателями Api, ApiPagination и ApiQueryLog. Я использую PHP 7.0 на Ubuntu.
Я выполнил этапы установки из документации, а также это руководство , но столкнулся со странной проблемой.
Каждый запрос на сбой CRUD API и трассировка стека указывают на строку 540 в CrudComponent.
Я пересмотрел код плагина и нашел, где генерируется исключение и как его исправить, но я не хочу менять код библиотеки. Исключение вызвано тем, что при использовании слушателя Api событие Crud.beforeRender возвращает объект Response, если я закомментирую строку «throw $ Exception», все будет работать, как и ожидалось.
Это код библиотеки (Controller / Component / CrudComponent.php):
public function trigger($eventName, Subject $data = null)
{
$eventName = $this->_config['eventPrefix'] . '.' . $eventName;
$Subject = $data ?: $this->getSubject();
$Subject->addEvent($eventName);
if (!empty($this->_config['eventLogging'])) {
$this->logEvent($eventName, $data);
}
$Event = new Event($eventName, $Subject);
$this->_eventManager->dispatch($Event);
if ($Event->result instanceof Response) {
$Exception = new Exception();
$Exception->response = $Event->result;
throw $Exception;
}
return $Event;
}
Если кто-нибудь и поймет, что вызывает такое странное поведение, я буду признателен за любую помощь.
PS: Извините, если я сделал какие-либо ошибки при написании, английский не мой родной язык.
захват изображения трассировки стека