cakephp 3.x创建自定义小部件

cakephp 3.x创建自定义小部件,cakephp,cakephp-3.0,Cakephp,Cakephp 3.0,我想为Cakephp formHelper创建小部件 我在View/widget目录中创建了一个名为ImageWidget.php的widget文件(我不知道这是否是正确的目录,但是phpstorm加载了它,所以看起来很好) 但我有一个错误: 找不到名为“myTestTemp”的模板 我不知道我应该把我的模板放在哪里,或者这个模板是什么 (它像cakephp普通模板吗?) 我的模板文件如下所示: //in myTestTemp.ctp file <p>some html for

我想为Cakephp formHelper创建小部件

我在View/widget目录中创建了一个名为ImageWidget.php的widget文件(我不知道这是否是正确的目录,但是phpstorm加载了它,所以看起来很好)


但我有一个错误:

找不到名为“myTestTemp”的模板

我不知道我应该把我的模板放在哪里,或者这个模板是什么 (它像cakephp普通模板吗?)

我的模板文件如下所示:

//in myTestTemp.ctp file
<p>some html for test</p>
//在myTestTemp.ctp文件中
一些用于测试的html

我试图把文件放在这些目录中,但它不起作用

  • src/模板
  • src/视图
  • src/View/Widget

  • 谢谢

    与任何其他小部件一样,您的小部件使用字符串模板,并且它依赖于在表单帮助程序中设置的模板(分别在传递给小部件构造函数的
    \Cake\View\StringTemplate
    对象上设置),例如:

    $this->Form->setTemplates([
        'myTestTemp' => '<p {{attrs}}>some html for test</p>'
    ]);
    
    $this->Form->setTemplates([
    “myTestTemp'=>”一些用于测试的html

    ” ]);
    另见


    与任何其他小部件一样,您的小部件使用字符串模板,它依赖于在表单帮助程序中设置的模板(分别在传递给小部件构造函数的
    \Cake\View\StringTemplate
    对象上设置),例如:

    $this->Form->setTemplates([
        'myTestTemp' => '<p {{attrs}}>some html for test</p>'
    ]);
    
    $this->Form->setTemplates([
    “myTestTemp'=>”一些用于测试的html

    ” ]);
    另见


    您的问题缺少问题的根源,即定义名为
    myTestTemp
    的(字符串)模板用法的部分。ps,Wehen如果收到错误,请始终发布完整的错误,也就是说,包括完整的stacktrace(理想情况下是从日志中以适当可读的方式复制的),即使对熟悉CakePHP的人来说问题可能很明显!很抱歉,我在复制和粘贴过程中错过了它。感谢您的注释。您的问题缺少问题的根源,即定义名为
    myTestTemp
    的(字符串)模板用法的部分。ps,Wehen如果收到错误,请始终发布完整的错误,也就是说,包括完整的stacktrace(理想情况下是从日志中以适当可读的方式复制的),即使对熟悉CakePHP的人来说问题可能很明显!很抱歉,我在复制和粘贴过程中错过了它。谢谢你的来信。