我是十月CMS的新手并且正在学习创建一个Form Widget。但我收到以下错误:
The partial '_field_actorbox.htm' is not found.
/opt/lampp/htdocs/octobermovies/modules/system/traits/ViewMaker.php line 65
我的小部件文件夹名称是' formwidgets' 我在partials文件夹中的部分文件名是' _widget.htm' 我的formwidgets的内容> Actorbox.php
namespace Watchlearn\Movies\FormWidgets;
use Backend\Classes\FormWidgetBase;
use Config;
class ActorBox extends FormWidgetBase
{
public function widgetDetails()
{
return [
'name' => 'Actorbox',
'description' => 'Field for adding actors'
];
}
public function render(){
return $this->makePartial('widget');
}
public function loadAssets()
{
$this->addCss('css/select2.css');
$this->addJs('js/select2.js');
}
}
我在plugin.php中注册小部件的代码
public function registerFormWidgets()
{
return [
'Watchlearn\Movies\FormWidgets\ActorBox' => [
'label' => 'ActorBox Field',
'code' => 'actorbox'
]
];
}
我试图找到并查看文档,但找不到任何解决方案。
答案 0 :(得分:4)
Actorbox.php应该在formwidgets路径中。如果创建正确,dir结构将像
|-- formwidgets
|
|-- ActorBox.php
| `-- actorbox
| |-- assets
| | |-- css
| | | |-- actorbox.css
| | | `-- select2.min.css
| | `-- js
| | |-- actorbox.js
| | `-- select2.min.js
| `-- partials
| `-- _actorbox.htm
答案 1 :(得分:1)
你是否使用工匠创建了formwidget文件?
php artisan create:formwidget watchlearn\Movies Tagbox
(进入插件文件夹)
也许它会帮助您设置正确的权限并帮助您:) (这对我来说,我有完全相同的问题)
答案 2 :(得分:1)
我认为错误在于:
我的小部件文件夹名称是' formwidgets'我在partials文件夹中的部分文件名是' _widget.htm'我的formwidgets的内容>的 Actorbox.php 强>
但是你有
class ActorBox 扩展了FormWidgetBase
并且您似乎在其余代码中使用了大写字母B的类名。
OctoberCMS正在寻找文件 formWidgets / ActorBox.php ,匹配 registerFormWidgets 函数中给出的类名。 FormWidget(以及Component和Model等).php文件名应始终与包含的Widget(或任何情况)类名匹配完全相同的。
因此,在这种情况下,表单窗口小部件根本没有注册,因为找不到具有匹配名称的文件。默认情况下,您正在使用的表单定义.yaml文件中的type: actorbox
字段会导致10月要查找要呈现的_field_actorbox.htm
部分。
所以,只需将您的 Actorbox.php 重命名为 ActorBox.php ,我希望您的问题应该得到解决。
答案 3 :(得分:1)
尝试检查文件actorbox.php的路径。我也遇到了同样的问题,我将我的actorbox.php移动到了正确的路径,然后一切正常。