Как испечь код администратора (с префиксом) с 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
вариант.
Смотрите также