Как исправить рендеринг формы вручную - PullRequest
0 голосов
/ 09 апреля 2019

Я создаю представление формы под рукой, и я следую этому руководству ( здесь ).

Видимо, моя форма работает, проблема в том, что в полях, которые имеютзависимостей.Поле «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">&times;</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>

Как я упоминал выше, форма отображает, она показывает правильныйоднако значения в поле «КОМПАНИЯ», когда я выбираю любое «Компания», поле «ЕДИНИЦА» не загружается и показывает сообщение, которое я цитировал выше.

...