Отсутствует контроллер при использовании префикса администратора в CakePHP 3.2

У меня проблема с административной частью моего сайта при использовании CakePHP 3.2.

Эта часть очень хорошо работает на wamp в локальном режиме, но когда я переместил сайт на сервер apache, он перестал работать. У меня есть это сообщение об ошибке:

Отсутствует ошибка контроллера Cake\Routing\Exception\MissingControllerException: не удалось найти DashboardController. Ошибка: Создайте класс DashboardController ниже в файле: src/Controller/Admin/DashboardController.php

И эта ошибка в переменных:

ошибка: несериализуемый объект - Cake\Routing\Exception\MissingControllerException. Ошибка: Панель мониторинга класса контроллера не найдена в /data/vhosts/dev.droplet.ninja/htdev/vendor/cakephp/cakephp/src/Routing/Dispatcher.php, строка 79.

Но контроллер существует по правильному пути с этим содержимым:

<?php
namespace App\Controller\Admin;

use App\Controller\AppController;

class DashboardController extends AppController
{

    public function index()
    {

    }
}

Префикс в моем файле route.php:

// Admin namespace
Router::prefix('admin', function ($routes) {
    $routes->connect('/', ['controller' => 'Dashboard', 'action' => 'index', 'dashboard']);
    $routes->fallbacks('DashedRoute');
});

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

Также имя контроллера находится в:

src/Controller/Admin/DashboardController.php

Я искал различия между двумя настройками apache, но не нашел, что может заставить CakePhp иметь такое поведение.

Есть ли у вас какие-либо идеи ?

Спасибо


person Mickael Lavieville    schedule 10.11.2016    source источник
comment
Если файл есть, это почти всегда проблема с правами доступа.   -  person Greg Schmidt    schedule 11.11.2016
comment
Что вы имеете в виду под разрешениями? Чтобы получить доступ к файлам на сервере? Я только что проверил. Файлы имеют следующие разрешения rw-r--r-- (644). Я собираюсь проверить свою аутентификацию, чтобы увидеть, может ли это быть проблемой. Спасибо за вашу помощь.   -  person Mickael Lavieville    schedule 14.11.2016
comment
Хорошо, я проверил, здесь нет проблем. У вас есть другие идеи?   -  person Mickael Lavieville    schedule 17.11.2016
comment
Других идей у ​​меня нет, но я еще не использовал административную маршрутизацию в своих проектах. Начать отладку строки 79 Dispatcher.php?   -  person Greg Schmidt    schedule 18.11.2016
comment
Спасибо, я тоже так делал. Похоже, проблема в EventListener. Может ли это быть проблемой с отсутствующим расширением или проблемой версии? Я заметил, что даже если я настроил wamp для использования PHP 5.6.19, он использует PHP 7.0 для приложений CakePHP. Что может привести к конфликту версий.   -  person Mickael Lavieville    schedule 21.11.2016
comment
Я тоже пытался добавить плагин вместо префикса, и у меня такая же проблема.   -  person Mickael Lavieville    schedule 21.11.2016
comment
Хорошо, я заставил это работать с плагином. Но все равно очень странно, что с префиксом не работает. Спасибо за вашу помощь.   -  person Mickael Lavieville    schedule 21.11.2016


Ответы (1)


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

bin/cake cache clear _cake_routes_

Вы можете получить список префиксов кеша, запустив bin/cake cache list_prefixes.

Дополнительная информация: /3.0/en/console-and-shells/ кеш.html

person aexl    schedule 21.01.2019