CakePHP Bake из разных шаблонов при использовании префикса

Когда я в настоящее время использую ./cake.bat bake template Genres или ./cake.bat bake template Genres --prefix admin, шаблоны используются из этих мест:

cakephp\bake\src\Template\Bake\Template\view.twig
cakephp\bake\src\Template\Bake\Template\index.twig
cakephp\bake\src\Template\Bake\Template\add.twig
cakephp\bake\src\Template\Bake\Template\edit.twig

Я хочу использовать разные версии всех этих шаблонов, когда выпекаю с префиксом администратора. Я попытался создать тему Bake. .

  • Я побежал ./cake.bat bake plugin AdminTheme
  • Затем я поместил нужные файлы шаблонов в plugins/AdminTheme/templates/Bake/Template/.
  • Побежал ./cake.bat bake template Genres --theme AdminTheme
  • Получил Error: "AdminTheme" is not a valid value for --theme. Please use one of "Bake, Migrations, WyriHaximus/TwigView"

person Utsav Munendra    schedule 17.09.2019    source источник


Ответы (1)


Префиксы не влияют на источник шаблона, путь в значительной степени жестко запрограммирован в \Bake\Shell\Task\TemplateTask::getContent(). Один из способов использования разных шаблонов — запекать каждое действие отдельно и использовать аргумент action и, необязательно, аргумент alias, чтобы использовать имя по умолчанию для вывода, что-то вроде этого:

bin\cake bake template Genres admin_index index --prefix Admin

Это будет использовать файл Template/admin_index.ctp|twig и писать в Template/Admin/Genres/index.ctp.

Что касается вашей темы для выпечки, структура папки шаблона в вашем плагине темы должна быть:

AdminTheme/src/Template/Bake/Template/

нет

AdminTheme/templates/Bake/Template/

Также убедитесь, что ваш плагин действительно загружается, т.е. проверьте, что $this->addPlugin('AdminTheme'); существует в вашем методе bootstrap() класса Application, или для более ранних версий Plugin::load('AdminTheme'); в вашем config/bootstrap.php файле.

См. также Bake Cookbook > Расширение Bake > Создание темы Bake

person ndm    schedule 17.09.2019
comment
Оба ваших метода сработали. Я видел документацию для версии 4.0 при использовании версии 3.0. Спасибо! - person Utsav Munendra; 17.09.2019