Php 十月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

我是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.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子目录中。