Ballly
@Ballly

Как сохранить массив в базу данных?

Всем здравствуйте! Пишу небольшое api на yii2, ранее с json форматом вообще не работал. В общем есть функция через которую посредством getBodyParams() получаю массив данных, и вот теперь как-то надо проверить содержимое массива на валидность и произвести сохранение в базу данных, в данном случае методы $model->validate() и $model->save() соответственно не отрабатывают. Как в данном случае правильно произвести сохранение полученных данных?
Array
(
    [ticket_id] => 12345
    [payment_type] => qr
    [amount] => 300.00
    [rrn] => text
    [payment_id] => 54321
)

public function actionRent()
    {
        $model = new AkhParking();
        $model = Yii::$app->getRequest()->getBodyParams();

       // валидация и сохранение ...
    }
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 1
kawabanga
@kawabanga
Google:
1) load Model from Array yii2
$model = new JobOrderDetail();
$model->load($arrayData, ''); // '' = formname or empty string


2) Валидация модели
https://github.com/yiisoft/yii2/blob/master/docs/g...
if ($model->validate()) {
    // все данные корректны
} else {
    // данные не корректны: $errors - массив содержащий сообщения об ошибках
    $errors = $model->errors;
}


Модель при этом должна у вас быть от ActiveRecord.

3) Проверить, сохранилась ли модель через if ($model->save());

В чем конкретно у вас возникли сложности?
Да даже в лоб костылем через foreach
$model = new Model;
foreach ($array as $key => $value) {
 $model->$key = $value; // правда надо проверить на существование property в модели.
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы