Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Yii2, добавить в форму создания чекбоксы для выбора связанных сущностей / 4 сообщений из 4, страница 1 из 1
04.04.2017, 14:01
    #39432882
eklm86
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yii2, добавить в форму создания чекбоксы для выбора связанных сущностей
То есть есть форма создания для сущности Коктейль, созданная через стандартный gii, есть сущность Ингредиент. Связал их как многие ко многим:
Код: php
1.
2.
3.
4.
public function getIngredients() {
        return $this->hasMany(Ingredient::className(), ['id' => 'ingredient_id'])
                ->viaTable('cocktails_ingredients', ['cocktail_id' => 'id']);
 }



Форма
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
$this->title = 'Create Сocktail';
$this->params['breadcrumbs'][] = ['label' => 'Сocktails', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="cocktail-create">

    <h1><?= Html::encode($this->title) ?></h1>

    <?= $this->render('_form', [
        'model' => $model,
    ]) ?>
    //список всех ингредиентов во вью передал
    <br>
    <?php foreach ($ingredients as $ingredient) {
        echo $ingredient['name']."<br>";
    }
    ?>
</div>




Cписок всех ингредиентов во вью передал. Как теперь добавить в форму чекбоксы для выбора ингредиентов в форму?
...
Рейтинг: 0 / 0
04.04.2017, 15:17
    #39432965
eklm86
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yii2, добавить в форму создания чекбоксы для выбора связанных сущностей
Форма в шаблоне выводится вот такой конструкцией
Код: php
1.
2.
3.
    <?= $this->render('_form', [
        'model' => $model,
    ]) ?>



Как добавить туда чекбоксы? Как сохранить в контроллере я разберусь, думаю.
...
Рейтинг: 0 / 0
04.04.2017, 16:16
    #39433027
eklm86
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yii2, добавить в форму создания чекбоксы для выбора связанных сущностей
В общем, в _form.php должно быть что-то такое

Код: php
1.
2.
3.
    <?= $form->field($model, 'ingredient_id')->checkbox(
        ArrayHelper::map($ingredients, 'id', 'name')
    ) ?>



Загвоздка в том, что $ingredients передаётся из контроллера в create.php, но не доступна в _form.php.

В контроллере $ingredients передаётся так
Код: php
1.
2.
3.
4.
5.
6.
    public function actionCreate()
    {
            return $this->render('create', 
                ['model' => $model, 'ingredients' => Ingredient::find()->all()]
            );
    }



Вроде бы должна быть в _form.php
...
Рейтинг: 0 / 0
04.04.2017, 17:29
    #39433075
eklm86
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yii2, добавить в форму создания чекбоксы для выбора связанных сущностей
В create.php нужно
Код: php
1.
$this->render('_form', ['model'=>$model, 'ingredients'=>$ingredients])
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Yii2, добавить в форму создания чекбоксы для выбора связанных сущностей / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]