Задать вопрос
@frmax
человек

Сохранение в одну таблицу 2х строк?

Привет, у меня получилась такая проблема. Я генерирую 2 модели

$model1 = table::findOne(['id' => 1, 'type' => 1]);
$model2 = table::findOne(['id' => 1, 'type' => 2]);


пытаюсь сохранить - при получении данных
if (isset($model1) &&  $model1->load(Yii::$app->request->post()) && $model1->validate()) {
                    $model1->save(true, ['type' => 1]);
                }
                
                if (isset($model2) && $model2->load(Yii::$app->request->post()) && $model2->validate()) {
                    $model2->save(true, ['type' => 2]);
                }


Но беда в том что сохраняет он мне одни и теже данные в 2 строки - где у меня type=1 и type=2. Как быть мне надо данные для каждой строки свои)
  • Вопрос задан
  • 83 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
sanchezzzhak
@sanchezzzhak
Ля ля ля...
Ну у вас имя формы одинаковое нужно делать многомерные поля

www.yiiframework.com/wiki/666/handling-tabular-dat...

$models = table::findAll['id' => 1, 'type' => [1,2]]);
<?php foreach($models as $i=>$item): ?>

               <?= $form->field($item,"[$i]name")->textInput(['maxlength' => 32]); ?>
                <?= $form->field($item,"[$i]price"); ?>
                <?= $form->field($item,"[$i]count"); ?>
                <?= $form->field($item,"[$i]description"); ?>
        <?php endforeach; ?>

Дальше все как по инструкции

if (Model::loadMultiple($models , Yii::$app->request->post()) && 
        Model::validateMultiple($models )) {
... }
Ответ написан
R0dger
@R0dger
Laravel/Yii/2 AngularJs PHP RESTful API
а покажите View где выводите форму и покажите что POST Вам присылает.. думаю проблемы будут именно там...

ЗЫ: надеюсь Вы загружаете эти модели в action где сохраняете... и вам достаточно просто указать $model1->save()
т.к. данные вы присвоили выше уже в $model1->load(Yii::$app->request->post())
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы