Php 十月CMS:无法创建表单小部件
我是10月CMS的新手,正在学习创建表单小部件。但我得到了以下错误:Php 十月CMS:无法创建表单小部件,php,octobercms,Php,Octobercms,我是10月CMS的新手,正在学习创建表单小部件。但我得到了以下错误: The partial '_field_actorbox.htm' is not found. /opt/lampp/htdocs/octobermovies/modules/system/traits/ViewMaker.php line 65 我的小部件文件夹名为“formwidgets” 我在partials文件夹中的partials文件名是“\u widget.htm” my formwidgets>Actorbox
The partial '_field_actorbox.htm' is not found.
/opt/lampp/htdocs/octobermovies/modules/system/traits/ViewMaker.php line 65
我的小部件文件夹名为“formwidgets”
我在partials文件夹中的partials文件名是“\u widget.htm”
my 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'
]
];
}
我也试图查找文档,但找不到任何解决方案。您是否使用artisan创建了formwidget文件
php artisan create:formwidget watchlearn\Movies标记框
(放入插件文件夹)
也许它会帮助您设置正确的权限并帮助您解决问题:)
(对我来说也是如此,我也有同样的问题)我认为错误就在这里: 我的小部件文件夹名称是“formwidgets”,我的部分文件夹中的部分文件名是“我的formwidgets的内容”\u widget.htm>Actorbox.php 但是你有 类ActorBox扩展FormWidgetBase 在代码的其余部分中,您似乎将该类名与大写字母B一起使用 OctoberCMS正在查找文件formWidgets/ActorBox.php,该文件与registerWidgets函数中给出的类名匹配。FormWidget(以及组件和模型等)。php文件名应始终与包含的Widget(或任何大小写)类名完全相同 因此,在本例中,表单小部件没有注册,因为找不到具有匹配名称的文件。默认情况下,您使用的表单定义.yaml文件中的
type:actorbox
字段会导致十月查找要渲染的\u field\u actorbox.htm
部分
因此,只要将您的Actorbox.php重命名为Actorbox.php,我希望您的问题会得到解决。尝试检查您的文件Actorbox.php的路径。我也遇到了同样的问题,我将actorbox.php移到了正确的路径,然后一切正常。actorbox.php应该位于formwidgets路径中。如果正确创建,dir结构将如下
|-- formwidgets
|
|-- ActorBox.php
| `-- actorbox
| |-- assets
| | |-- css
| | | |-- actorbox.css
| | | `-- select2.min.css
| | `-- js
| | |-- actorbox.js
| | `-- select2.min.js
| `-- partials
| `-- _actorbox.htm
对于长引号/错误消息,请使用块注释(在内容前面加上
)。@greybeard感谢您的建议。你有什么办法解决我发布的问题吗?是的,文件名不符合要求。文件名必须与类名完全匹配。这正是我的问题。我将表单widget文件保存在widget的name子目录中。