我想爲CakePHP formHelper創建小部件。cakephp 3.x創建自定義小部件
我創建的視圖/小部件目錄中名爲ImageWidget.php一個小部件文件(因此它似乎罰款,我不知道這是否是正確的目錄,但phpstorm加載它)
<?php
namespace App\View\Widget;
use Cake\View\Form\ContextInterface;
use Cake\View\Widget\WidgetInterface;
class ImageWidget implements WidgetInterface
{
protected $_templates;
public function __construct($templates)
{
$this->_templates = $templates;
}
public function render(array $data, ContextInterface $context)
{
$data += [
'name' => '',
];
return $this->_templates->format('myTestTemp', [
'name' => $data['name'],
'attrs' => $this->_templates->formatAttributes($data, ['name'])
]);
}
public function secureFields(array $data)
{
return [$data['name']];
}
}
?>
但我得到這個錯誤:
Cannot find template named 'myTestTemp'.
我不知道我應該在哪裏把我的模板或這是什麼模板都 (是像CakePHP的Normal模板?)
我模板文件是這樣的:
//in myTestTemp.ctp file
<p>some html for test</p>
我試圖把文件在這些目錄中,並沒有正常工作
- 的src /模板
- 的src /查看
- 的src /查看/控件
感謝
您的問題缺乏問題的根源,即您定義名爲'myTestTemp'的(字符串)模板的用法的部分。 ps,wehenever一旦收到錯誤,請始終發佈** _complete_錯誤**,即**包括_full_ stacktrace **(理想情況下,從日誌中以正確可讀的方式複製它),即使問題可能存在對熟悉CakePHP的人來說是顯而易見的! – ndm
對不起,我錯過了它在複製和粘貼。謝謝你的提示。 – hamidreza