Грешка в контролера за разработка на приставки CakePHP 3 не може да бъде намерен

Опитвам се да създам администраторски плъгин за моя уебсайт. Изпекох плъгин, след това потребителски модел и контролер, но когато посетя /admin/users/ или /admin/users/index, винаги дава грешка, както е показано по-долу:

Грешка: Admin.UsersController не може да бъде намерен.

Грешка: Създайте класа UsersController по-долу във файл: C:\xampp\htdocs\cake3\plugins\Admin\src\Controller\UsersController.php

Но, разбира се, имам файловете на правилните места. Някакви идеи какво причинява този проблем?

Благодаря много за помощта или дори усилията.

Моля, попитайте за допълнителна информация


person İsmail Atkurt    schedule 24.03.2015    source източник
comment
създаде ли своя плъгин с помощта на bake?   -  person José Lorenzo Rodríguez    schedule 24.03.2015
comment
да, Josê, създадох от shel с помощта на плъгина за печене на торта Admin   -  person İsmail Atkurt    schedule 24.03.2015
comment
Покажете кода за вашия контролер на плъгина и вашия файл composer.json във вашето приложение. Използвайте gist.github.com   -  person José Lorenzo Rodríguez    schedule 24.03.2015


Отговори (2)


Добавете този ред в config/bootstrap.php

Plugin::load('Admin', ['routes' => true, 'autoload' => true]);
person Tirthraj Singh Bartwal    schedule 21.05.2015
comment
Официална документация на Cakephp3 book.cakephp.org/3.0/en/plugins.html казва Plugin::load('Admin', ['routes' =› true]); е достатъчно. Загубих си 3 часа в проверка на грешка. добавянето на 'autoload' =› вярно проработи! - person Dashrath; 14.09.2015
comment
Може би това може да помогне за решаването на проблема: php composer.phar update - person Kannika; 09.05.2016
comment
работи за мен, но също така продължи да работи, след като премахнах 'autoload' =› true. Странно поведение някак - person Harald Ernst; 03.01.2017

Разбрах проблема. Става въпрос за файла routes.php в папката myplugin/config и composer.json в папката myplugin.

Jose проблемът не е composer.json в основното местоположение, проверих всичко наред с файла. И имам код там, както е показано по-долу.

"autoload": {
    "psr-4": {
        "App\\": "src",
        "Admin\\": "./plugins/Admin/src"
    }
},
"autoload-dev": {
    "psr-4": {
        "App\\Test\\": "tests",
        "Cake\\Test\\": "./vendor/cakephp/cakephp/tests",
        "Admin\\Test\\": "./plugins/Admin/tests"
    }
},

но трябваше да направя още две добавки.

Първо създадох composer.json в моята папка с добавки.

{
    "name": "your-name-here/Admin",
    "description": "Admin plugin for CakePHP",
    "type": "cakephp-plugin",
    "require": {
        "php": ">=5.4",
        "cakephp/cakephp": "3.0.x-dev"
    },
    "require-dev": {
        "phpunit/phpunit": "*"
    },
    "autoload": {
        "psr-4": {
            "Admin\\": "src"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Admin\\Test\\": "tests",
            "Cake\\Test\\": "./vendor/cakephp/cakephp/tests"
        }
    }
}

второ, създадох файла routes.php в "{mypluginfolder}/config" и добавих кодовете по-долу.

use Cake\Routing\Router;

Router::plugin('Admin', function ($routes) {
    $routes->fallbacks('InflectedRoute');
});

надявам се това да помогне на другите

person İsmail Atkurt    schedule 26.03.2015