如何在插件中创建和使用表单帮助器?

时间:2019-04-14 16:00:22

标签: cakephp-3.7

我正在尝试扩展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。 className有一个loadHelper选项,但我也找不到一种可以通过插件助手使用的方法。

1 个答案:

答案 0 :(得分:0)

我缺少助手的名称空间。应该是这样的:

<?php

  namespace MyPlugin\View\Helper
  use Cake\View\Helper\FormHelper as BaseFormHelper;

  class MyFormHelper extends BaseFormHelper
  {
  }