【发布时间】:2020-12-26 21:22:15
【问题描述】:
我已经通过 artisan 命令在插件槽中创建了一个新的自定义小部件。
php artisan create:formwidget --force DavideCasiraghi.Movies Actorbox
但是当我尝试将它加载到我的 fields.yaml 文件中时,我收到了这个错误。
未知控件类型:actorbox
这是/plugins/davidecasiraghi/movies/formwidgets/Actorbox.php的内容
<?php namespace DavideCasiraghi\Movies\FormWidgets;
use Backend\Classes\FormWidgetBase;
/**
* Actorbox Form Widget
*/
class Actorbox extends FormWidgetBase
{
protected $defaultAlias = 'actorbox';
public function init()
{
}
public function render()
{
$this->prepareVars();
return $this->makePartial('actorbox');
}
public function prepareVars()
{
$this->vars['name'] = $this->formField->getName();
$this->vars['value'] = $this->getLoadValue();
$this->vars['model'] = $this->model;
}
public function loadAssets()
{
$this->addCss('css/select2.css', 'DavideCasiraghi.Movies');
$this->addJs('js/select2.js', 'DavideCasiraghi.Movies');
}
/**
* @inheritDoc
*/
public function getSaveValue($value)
{
return $value;
}
}
/plugins/davidecasiraghi/movies/Plugin.php
中的自定义小部件是这样定义的<?php namespace DavideCasiraghi\Movies;
use System\Classes\PluginBase;
class Plugin extends PluginBase
{
public function registerComponents()
{
}
public function registerSettings()
{
}
public function registerFormWidgets() {
return [
'DavideCasiraghi\Movies\FormWidgets\Actorbox' => [
'label' => 'Actorbox field',
'code' => 'actorbox',
]
];
}
}
我已经浪费了 2 个小时试图找出原因,但我还没有弄明白。 我错过了什么?
关于这个主题有一个类似的表格,但我得到的错误是不同的。 October CMS : Not able to create a Form Widget
【问题讨论】:
-
builder 插件无法识别您的
FormWidget actorbox,您需要将您的规范明确告知构建器插件,以便它可以识别您的组件,请查看我的其他答案 => stackoverflow.com/questions/58019789/… -
嗨哈迪克,我必须在哪个文件和函数中指定它?我正在浏览你的代码,但我还不明白。
-
它写在那里
add this code to your plugin boot methodplugin.php文件,对于其他文件你需要创建新的:)
标签: laravel octobercms octobercms-widgets