Как испечь код администратора (с префиксом) с CakePHP 3?

Может кто-нибудь сказать мне, что является официальным способом создания CRUD для административного бэк-энда?

В CakePHP 2 запеченный код был дополнен 'admin_' перед именами функций и для файлов просмотра. В CakePHP кажется, что я не могу найти никакой прямой информации о том, как это делается. Консоль Bake больше не требует администратора. В этой теме: https://github.com/cakephp/bake/issues/28 Я вижу, что они упоминают об использовании расширения --prefix, но затем контроллер помещается в отдельную папку /Admin, в то время как функции CRUD продолжают иметь свои нормальное имя. И в некоторых частях поваренной книги () я все еще вижу, что они упоминают такие функции, как admin_view.

Так может кто-нибудь сказать мне, каков официальный "торт" - способ сделать это с 3.2?

3 ответа

Если вы хотите создать контроллер, используя торт, испечь. Вы можете сделать это с помощью следующей команды:

bin/cake bake controller --prefix admin users

Для просмотра:

bin/cake bake template --prefix admin users

Он создает папку администратора в каталоге шаблонов, затем создает папку для пользователей, затем включает в себя файлы. для структуры папок с префиксами администратора, например template/admin/users/index.ctp

Смотрите официальную документацию поваренной книги

Также в вашем config/rout.php добавьте это:

Router::prefix('admin', function ($routes) {
    $routes->connect('/', ['controller' => 'Users', 'action' => 'index']);
    $routes->extensions(['json', 'xml']);
    // All routes here will be prefixed with `/admin`
    // And have the prefix => admin route element added.
    $routes->fallbacks('DashedRoute');
});

Ниже приведена команда bake для выпечки всех префиксных контроллеров и шаблонов для таблицы пользователей.

cake bake all users --prefix admin

А вот код маршрута, чтобы он работал:-

Router::prefix('admin', function ($routes) {
        // Because you are in the admin scope,
        // you do not need to include the /admin prefix
        // or the admin route element.
        $routes->connect('/', ['controller' => 'Users', 'action' => 'index']);
        $routes->extensions(['json', 'xml']);
        // All routes here will be prefixed with `/admin`
    //$routes->connect('/admin', ['controller' => 'Order', 'action' => 'index']); // call other controller like this
        // And have the prefix => admin route element added.
        $routes->fallbacks('DashedRoute');
    }); 

Это будет работать для меня, надеюсь, это будет работать для вас:)

Вот как сейчас работает в CakePHP 3, префиксные методы ушли, префиксы теперь генерируют отдельные контроллеры в подпространствах имен, для меньших / более простых контроллеров и для надлежащего разделения не только на уровне контроллера, но и на уровне шаблона, где Шаблоны, как ожидается, будут размещены в отдельных папках соответственно.

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

Итак, если вы хотите использовать префиксную маршрутизацию, то "официальным" способом является использование --prefix вариант.

Смотрите также

Другие вопросы по тегам