Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 26.03.2018 21:10:59

Получение модели через firstOrNew

// метод из модели 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)

Не в сети

#2 26.03.2018 22:32:50

Re: Получение модели через firstOrNew

$second = $first->second()->firstOrNew($request->only((new MyModel())->getFillable());

Не в сети

#3 03.04.2018 16:29:26

Re: Получение модели через firstOrNew

Спасибо. Но вот как раз напрямую и не хотелось бы обращаться к MyModel

Не в сети

#4 05.04.2018 09:43:58

Re: Получение модели через firstOrNew

Перед $second->save() выведите dd($second) и посмотрите, какие данные он имеет.
Вообще странно, ведь при создании модели в конструкторе берутся только данные, указанные в массиве $fillable.

Не в сети

Подвал раздела