我正在使用Cakedc Users插件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']) ?>
来创建链接
那么我该如何解决这个问题?
小更新:我只想到使用旧的../ hack并且它有效
<?= $this->Html->link(__('FAQ'), ['controller'=>'../faqs']) ?>
给了我想要的结果,但是如果有的话我仍然想要另一个解决方案
答案 0 :(得分:1)
你不应该插入插件源代码,你的更改将在下次更新时丢失!
检查插件和CakePHP文档,了解如何正确覆盖插件视图模板。
[...]
您可以使用特殊路径覆盖应用内部的任何插件视图。如果您有一个名为
ContactManager
的插件,则可以使用以下模板src/Template/Plugin/[Plugin]/[Controller]/[view].ctp
创建文件,从而使用特定于应用程序的视图逻辑覆盖插件的模板文件。对于Contacts控制器,您可以创建以下文件:src/Template/Plugin/ContactManager/Contacts/index.ctp
[...]
可以使用
之类的路径以相同的方式覆盖布局src/Template/Plugin/[Plugin]/Layout/[layout].ctp
因此对于cakedc/users
插件,可以通过
src/Template/Plugin/Users/Layout/default.ctp
plugin
选项如果您需要在插件范围内评估的代码来生成非插件网址,请使用plugin
选项通过传递false
或null
来突破。
<?= $this->Html->link(__('FAQ'), ['controller' => 'faqs', 'plugin' => false]) ?>