Cakephp 3.6 - Отсутствует ошибка контроллера - PullRequest
0 голосов
/ 02 июня 2018

У меня ошибка, которая, кажется, не имеет смысла.Я использую этот плагин: https://github.com/hashmode/cakephp-tinymce-elfinder. Мне нужно создать и администрировать маршрут.Однако, даже если CakePHP видит плагин, он не видит контроллер внутри него.Я не вижу, что я делаю неправильно.

Это мой маршрут для /admin/elfinder:

Router::prefix('admin', function ($routes) {
  $routes->connect('/elfinder', ['plugin' => 'CakephpTinymceElfinder', 'controller' => 'Elfinders', 'action' => 'elfinder']);
});

Это контроллер / действие, к которому я пытаюсь получить доступ

https://github.com/hashmode/cakephp-tinymce-elfinder/blob/master/src/Controller/ElfindersController.php

Но я получаю следующую ошибку:

2018-06-01 15:20:33 Error: [Cake\Routing\Exception\MissingControllerException] Controller class Elfinders could not be found.
Request URL: /admin/elfinder

Он определенно находит плагин.Почему CakePHP не может найти контроллер?

1 Ответ

0 голосов
/ 02 июня 2018

Согласно официальной CookBook, вам нужно настроить префиксные маршруты следующим образом.Надеюсь, это поможет.

Router::plugin('YourPlugin', function ($routes) {
    $routes->prefix('admin', function ($routes) {
        $routes->connect('/:controller');
    });
});

https://book.cakephp.org/3.0/en/development/routing.html#prefix-routing

Некоторое время назад я написал плагин для своих личных нужд.Мне нужно было привязать его контроллеры к URL /shop и /shop/api.Мне удалось сделать это так

Router::scope('/shop',['plugin'=>'MyPlugin'] ,function (RouteBuilder $routes) {
    $routes->prefix('api', function($routes) {
        $routes->extensions(['json']);
        $routes->connect('/:controller');

        $routes->resources('Categories');
        $routes->resources('Products');
        $routes->resources('Prices');
        $routes->resources('Pricetypes');
    });

    $routes->connect('/:controller');
    $routes->fallbacks(DashedRoute::class);
});
...