Работаю с базовой версией. Собираю данные с формы и хочу записать их в базу массово, через атрибуты. Вот мои правила валидации:
public function rules()
{
return [
[['name', 'date', 'parking_place', 'parking_time','spent_fuel', 'remain_fuel', 'distance'],
'required', 'message' => 'Поле не может быть пустым'],
[['parking_time','spent_fuel', 'remain_fuel', 'distance'],
'integer', 'message' => 'Значение должно быть целым числом'],
[['name', 'date', 'parking_place', 'parking_time','spent_fuel', 'remain_fuel', 'distance'],
'safe'],
];
}
Вот так я пытаюсь записать данные в базу:
$model->attributes = Yii::$app->request->post();
$fleet = new Fleet();
$fleet->attributes = $model->attributes;
$fleet->save();
В массиве $model->attributes есть все значения, а вот в $fleet->attributes есть только названия полей, без значений.
Как я писал в коде, но забыл упомянуть, я использовал две модели Report и Fleet. Решением оказалось скопировать правила валидации в Fleet. Код пришёл к виду:
$model = new Fleet();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
$model->save();
Yii::$app->session->setFlash('reportFormSubmitted');
return $this->refresh();
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей