0

我正在尝试扩展 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但我也找不到与插件助手一起使用的方法。

4

1 回答 1

0

我错过了助手的名称空间。应该是这样的:

<?php

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

  class MyFormHelper extends BaseFormHelper
  {
  }
于 2019-04-14T16:05:53.167 回答