Я создаю представление формы под рукой, и я следую этому руководству ( здесь ).
Видимо, моя форма работает, проблема в том, что в полях, которые имеютзависимостей.Поле «unit» зависит от поля «Company», когда я меняю поле «company», появляется следующее сообщение: «Виджет с именем класса 'form' не был привязан к контроллеру".
Чтобы лучше понять, я помещаю свой файл "fields.yaml" и мой код ниже.
fields:
company:
label: Empresa
emptyOption: '---'
span: auto
type: dropdown
unit:
label: Unidade
span: auto
dependsOn:
- company
type: dropdown
public function onShowCreateOpportunity()
{
$model = new \CRM\Events\Models\Opportunity;
$config = $this->makeConfig('$/crm/events/models/opportunity/fields.yaml');
$config->arrayName = 'Opportunity';
$config->model = $model;
$widget = $this->makeWidget('Backend\Widgets\Form', $config);
$widget->form = $model;
$widget->bindToController();
$this->vars['model'] = $model;
$this->vars['widget'] = $widget; //its for test
return $this->makePartial('views/sales/sales_new', [
'widget' => $widget, //its for test
]);
}
<div id="popupSales">
<div class="modal-header">
<button type="button" class="close" data-dismiss="popup">×</button>
<h3 class="modal-title" align="center">Nova Oportunidade</h3>
</div>
<?= Form::open() ?>
<div class="modal-body">
<div class="row">
<div class="col-sm-12" style="margin-top: 20px;">
<?= $widget->render() ?>
</div>
</div>
</div>
<div class="modal-footer" style="margin-top: 5px;">
<div class="loading-indicator-container">
<button data-request="onCreateNew" class="btn btn-primary">
Cadastrar
</button>
<button
type="button"
class="btn btn-primary"
data-dismiss="popup">
Fechar
</button>
</div>
</div>
<?= Form::close() ?>
</div>
Как я упоминал выше, форма отображает, она показывает правильныйоднако значения в поле «КОМПАНИЯ», когда я выбираю любое «Компания», поле «ЕДИНИЦА» не загружается и показывает сообщение, которое я цитировал выше.