如何为插件创建 Html->链接


How to create Html->link for plugins

我正在使用 Cakedc 用户插件 https://github.com/CakeDC/users 这对我非常好

但是我有一个问题,这个插件的默认布局位于APP_ROOT'vendor'cakedc'users'src'Template'Layout

但是我的应用的默认布局位于APP_ROOT'src'Template'Layout

我不认为这是一个大问题我只是将默认布局从我的src文件夹复制到插件文件夹,但我的问题是他们指向我网站的链接

EXAMPLE.COM/FAQ转换为EXAMPLE.COM/USERS/FAQ

我正在使用<?= $this->Html->link(__('FAQ'), ['controller'=>'faqs']) ?>来创建链接

那么我该如何解决这个问题呢?


小更新:我只是想使用旧的../黑客和它工作

<?= $this->Html->link(__('FAQ'), ['controller'=>'../faqs']) ?>给了我想要的结果,但是如果有的话,我还是想要另一个解决方案

插件

视图模板应通过应用程序模板覆盖

您不应该摆弄插件源代码,您的更改将在下一次更新中丢失!

查看插件和 CakePHP 文档,了解如何正确覆盖插件视图模板。

[...]

您可以使用特殊路径从应用程序内部覆盖任何插件视图。如果您有一个名为 ContactManager 的插件,则可以使用以下模板src/Template/Plugin/[Plugin]/[Controller]/[view].ctp创建文件,从而使用特定于应用程序的视图逻辑覆盖插件的模板文件。对于联系人控制器,您可以创建以下文件:

src/Template/Plugin/ContactManager/Contacts/index.ctp

[...]

  • https://github.com/CakeDC/users/blob/3.1.4/Docs/Documentation/Extending-the-Plugin.md#updating-the-templates

  • 说明书>插件>从应用程序内部覆盖插件模板

布局可以通过使用类似路径以相同的方式覆盖

src/Template/Plugin/[Plugin]/Layout/[layout].ctp

因此,对于cakedc/users插件,默认布局可以通过以下方式覆盖

src/Template/Plugin/Users/Layout/default.ctp

通过plugin选项突破插件范围

如果需要在插件范围内计算的代码来生成非插件 URL,请使用 plugin 选项通过传递 falsenull 来突破。

<?= $this->Html->link(__('FAQ'), ['controller' => 'faqs', 'plugin' => false]) ?>
相关文章: