Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
// метод из модели first
public function second()
{
return $this->hasOne('App\Second');
}
// Хочется сделать создание связанной модели одной строкой
$second = $first->second()->firstOrNew($request->all());
// Какие-то операции с $second и сохранение:
$second->save();
При таком создании связанной модели в нее попадает, из запроса то, что к ней не относится и при сохранении возникает ошибка БД, при попытке записать несуществующие поля. Существует ли возможность одной строкой кода сделать задуманное, используя стандартные методы?
$fillable заполнено корректно
Изменено cx2 (26.03.2018 21:13:58)
Не в сети
$second = $first->second()->firstOrNew($request->only((new MyModel())->getFillable());
Не в сети
Спасибо. Но вот как раз напрямую и не хотелось бы обращаться к MyModel
Не в сети
Перед $second->save() выведите dd($second) и посмотрите, какие данные он имеет.
Вообще странно, ведь при создании модели в конструкторе берутся только данные, указанные в массиве $fillable.
Не в сети
Страницы 1