使用前缀时从不同的模板烘焙 CakePHP

CakePHP Bake from different templates when using prefix

当我当前使用 ./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

当我使用 admin 前缀烘焙时,我想要所有这些模板的不同版本。我试过了creating a Bake Theme

前缀不会影响模板源,路径在\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'); 是否存在于您的 Application class' bootstrap() 方法中,或者对于早期版本 Plugin::load('AdminTheme'); 在你的 config/bootstrap.php 文件中。

另见 Bake Cookbook > Extending Bake > Creating a Bake Theme