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

У меня есть призовая форма со следующими полями:

artist -> Choice (Related model artist)
prize_type
year

При создании нового объекта приза у меня нет проблем.Теперь я хочу, чтобы в моем представлении «Исполнитель» была кнопка с именем Create Prize, и при ее нажатии необходимо перейти к форме, но я хочу, чтобы поле artist было выбрано по умолчанию.

Как я могу это сделать?установить значение по умолчанию для этого поля в зависимости от того, с какого URL идет?

Я пытался получить свой идентификатор исполнителя в URL, поэтому получил что-то вроде этого:

"приз /new? id_artist = 23 "

Но я не могу понять, как вставить этот идентификатор в поле $form['id_artist'].

Я пытался использовать опцию setDefault, ноэто только для заполнителей:

$this->form->setDefault('id_artist', $request->getParameter("id_artist"));

Также я скрываю связанное поле в своем шаблоне, так как не хочу, чтобы оно приходило с этого URL

<?php if(!$id_artist): ?>
            <div class="control-group <?php echo $form['id_artist']->hasError()?'error':''; ?>">
                <?php echo $form['id_artist']->renderLabel('Artist ',array('class' => 'control-label')) ?>
                <div class="controls">
                    <?php echo $form['id_artist']?>
                    <small class="help-inline">Artist</small>
                    <?php if($form['id_artist']->hasError()): ?>
                        <small class="help-inline">(<?php echo $form['id_artist']->getError() ?>)</small>   
                    <?php endif; ?> 
                </div>
            </div>
        <?php endif; ?>

Я попытался автоматически установить id_artist непосредственно на этот параметр, но вместо этого я получил ошибку, так как в моей форме требуется артист.

...