Как записать массив в БД?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Как записать массив в БД?

Сообщение alexa777 »

В Post запросе вот такой массив

Код: Выделить всё

 'my_var' => [ 
    0 => [
          'title' => 'название' 
          'link' => 'http://site.ru/' 
       ] 
   1 => [
          'title' => 'названиее' 
          'link' => 'http://site.ru/' 
       ] 
]

Не пойму как записать его в базу, в контролере пробовал так

Код: Выделить всё

$model->my_var 
var_dump $model->my_var выводит array(0) { }

Подскажите как правильно сделать?
Последний раз редактировалось alexa777 2018.10.09, 12:03, всего редактировалось 1 раз.
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Re: Как записать массив в БД?

Сообщение alexa777 »

Loveorigami писал(а): 2018.10.09, 11:37foreach
Да то что foreache я уже понял
но ведь массив пуст $model->my_var
либо я не правильно его запрашиваю
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

Re: Как записать массив в БД?

Сообщение someweb »

$model->load() то есть?
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Re: Как записать массив в БД?

Сообщение alexa777 »

someweb писал(а): 2018.10.09, 12:32 $model->load() то есть?
Конечно есть вот полностью функция

Код: Выделить всё

 public function actionCreate()
    {
        $model = new Post();

         if ($model->load(Yii::$app->request->post())) {
             var_dump($my_var);
             die;

       
                    return $this->redirect(['view', 'id' => $model->id]);
                
             }
        }

        return $this->render('create', [
            'model' => $model,
        ]);
    }
а вот форма

Код: Выделить всё

    <?= $form->field($model, 'my_var')->widget(MultipleInput::className(), [
    
    'columns' => [
        [
            'name'  => 'title',
            'title' => 'Название',
            'enableError' => true,
        ],
        
        [
            'name'  => 'link',
            'title' => 'Ссылка',
            'enableError' => true,
        ]
    ]
 ]);
?>
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Как записать массив в БД?

Сообщение Loveorigami »

а валидация где?
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Re: Как записать массив в БД?

Сообщение alexa777 »

Loveorigami писал(а): 2018.10.09, 14:02 а валидация где?
В модели

Код: Выделить всё

[['my_var'], 'exist', 'allowArray' => true],
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

Re: Как записать массив в БД?

Сообщение urichalex »

var_dump($my_var);

А откуда взялся $my_var?

Может $model->my_var
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Re: Как записать массив в БД?

Сообщение alexa777 »

urichalex писал(а): 2018.10.09, 15:50 var_dump($my_var);

А откуда взялся $my_var?

Может $model->my_var
так тоже array(0) { }
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Как записать массив в БД?

Сообщение Loveorigami »

alexa777 писал(а): 2018.10.09, 14:23
Loveorigami писал(а): 2018.10.09, 14:02 а валидация где?
В модели

Код: Выделить всё

[['my_var'], 'exist', 'allowArray' => true],
$model->validate()?
Ответить