如何在插件中创建和使用表单助手?
How do I create and use a Form helper in a plugin?
我正在尝试扩展 FormHelper 以包含一些自定义控件。我想把它作为插件的一部分来做。该文档对如何实现这一点有点粗略。
我已经在以下文件夹结构中创建了所需的助手:
\plugins\MyPlugin\src\View\Helper\MyFormHelper
助手看起来像这样:
<?php
use Cake\View\Helper\FormHelper as BaseFormHelper;
class MyFormHelper extends BaseFormHelper
{
}
...是的,现在是空的。插件的文档有点模糊,但似乎说可以在主应用程序的 AppView.php::initialise()
方法中以下列方式加载此助手:
$this->loadHelper('MyPlugin.MyFormHelper');
但是这不起作用。这样做我得到一个致命错误:
Fatal error: Cannot declare class MyFormHelper, because the name is already in use in /Users/geoidesic/MyApp/plugins/MyPlugin/src/View/Helper/MyFormHelper.php on line 12
那么问题来了,如何使用这个插件助手呢?具体来说,我想覆盖应用程序的默认 FormHelper。 loadHelper
有一个 className
选项,但我也找不到使用插件助手的方法。
我缺少助手的命名空间。应该是这样的:
<?php
namespace MyPlugin\View\Helper
use Cake\View\Helper\FormHelper as BaseFormHelper;
class MyFormHelper extends BaseFormHelper
{
}
我正在尝试扩展 FormHelper 以包含一些自定义控件。我想把它作为插件的一部分来做。该文档对如何实现这一点有点粗略。
我已经在以下文件夹结构中创建了所需的助手:
\plugins\MyPlugin\src\View\Helper\MyFormHelper
助手看起来像这样:
<?php
use Cake\View\Helper\FormHelper as BaseFormHelper;
class MyFormHelper extends BaseFormHelper
{
}
...是的,现在是空的。插件的文档有点模糊,但似乎说可以在主应用程序的 AppView.php::initialise()
方法中以下列方式加载此助手:
$this->loadHelper('MyPlugin.MyFormHelper');
但是这不起作用。这样做我得到一个致命错误:
Fatal error: Cannot declare class MyFormHelper, because the name is already in use in /Users/geoidesic/MyApp/plugins/MyPlugin/src/View/Helper/MyFormHelper.php on line 12
那么问题来了,如何使用这个插件助手呢?具体来说,我想覆盖应用程序的默认 FormHelper。 loadHelper
有一个 className
选项,但我也找不到使用插件助手的方法。
我缺少助手的命名空间。应该是这样的:
<?php
namespace MyPlugin\View\Helper
use Cake\View\Helper\FormHelper as BaseFormHelper;
class MyFormHelper extends BaseFormHelper
{
}