This forum has moved to a new location and is in read-only mode. Please visit talk.octobercms.com to access the new location.
I'm new to October CMS and learning to create a Form Widget. But I'm getting the following error :
The partial '_field_actorbox.htm' is not found.
/opt/lampp/htdocs/octobermovies/modules/system/traits/ViewMaker.php line 65
My widget folder name is 'formwidgets'
My partials file name inside partials folder is '_widget.htm'
Content of 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');
}
}
My code to register the widget in plugin.php
public function registerFormWidgets()
{
return [
'Watchlearn\Movies\FormWidgets\ActorBox' => [
'label' => 'ActorBox Field',
'code' => 'actorbox'
]
];
}
I tried to find and looked into the documentation also but could not find any solution for this.
The problem is that your form widget is not properly registered (as in: The system doesn't know a formwdiget with the code actorbox
exists). Thats why it is assuming its a partial type and tries to load _field_actorbox.htm
.
So here are a few things to check:
- Is your plugin recognized by the October plugin. Please check if it is listed under
Settings > Updates
or try to register a navigation item and see if that displays. - Check for any spelling mistakes, especially in your
registerFormWidgets
-method. Output something from there (usingdd()
) to actually confirm it is ever called. - Depending on your October Version, you might want to adjust your registration code to respect the new simplified registration procedure: http://octobercms.com/docs/backend/widgets#form-widget-registration
alxy said:
The problem is that your form widget is not properly registered (as in: The system doesn't know a formwdiget with the code
actorbox
exists). Thats why it is assuming its a partial type and tries to load_field_actorbox.htm
.So here are a few things to check:
- Is your plugin recognized by the October plugin. Please check if it is listed under
Settings > Updates
or try to register a navigation item and see if that displays.- Check for any spelling mistakes, especially in your
registerFormWidgets
-method. Output something from there (usingdd()
) to actually confirm it is ever called.- Depending on your October Version, you might want to adjust your registration code to respect the new simplified registration procedure: http://octobercms.com/docs/backend/widgets#form-widget-registration
Thank you @alxy for your response. I tried what to wanted me to do and found that the plugin in which I'm creating the widget is there in the Settings > Update. But registerFormWidgets - method is never called. I tried to print something in the method by using dd() but nothing happens.
Hello
In your plugin you have registered a FormWidgets with code: actorbox
And in render function you call :
return $this->makePartial('widget');
Does not exist you need to change like this :
file formwidgets > Actorbox.php
public function render(){
return $this->makePartial('widget');
}
See this example here : https://www.sitepoint.com/building-octobercms-form-field-widgets-like-a-pro/
Last updated
I know this is too late to reply on this issue but I have already face this issue and the solution is move your "ActorBox" class file from "actorbox" folder to "formwidget" folder. And this will solve your problem.
@pushkar9168 Thank You! Moving formwidget class file to the formwidgets directory solved my issue.
pushkar9168 said:
I know this is too late to reply on this issue but I have already face this issue and the solution is move your "ActorBox" class file from "actorbox" folder to "formwidget" folder. And this will solve your problem.
Really helpful, thank you!
1-7 of 7