Обновление Laravel Model Fails из-за отношений - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть ситуация, когда я выбираю модель в Laravel.Примерно так:

$user = User::with('subscription')->where('id', '=', 123)->first();

Если потом я попытаюсь сделать что-то вроде этого:

$user->firstname = 'John';
$user->save();

Я получаю ошибку SQL, потому что она говорит, что нет поля БД с именем «подписка».Msgstr "Похоже, что отношение сохраняется при сохранении как поле БД.Это правильно?Имею ли я в виду

unset($user->subscription)

перед сохранением?

Не возможно ли обновить модель, если к ней присоединены отношения?Нужно ли удалять его перед сохранением?

Ответы [ 3 ]

0 голосов
/ 29 ноября 2018

Тот же код работает для меня.Какую версию Laravel вы используете?

    $psc = Subject::with('group')->where('group_id', 1)->first();

    $psc->group->name = 'PSC';
    $psc->group->save();
    dd($psc->group);

    $psc->name = 'Science';
    $psc->save();
    dd($psc->name);
0 голосов
/ 29 ноября 2018

Я нашел, что это вызвало.В предыдущем месте в моем коде я пытался обновить отношения.Случайно я назначил подписку в качестве атрибута для моего объекта пользователя.Это не было проблемой Laravel.

0 голосов
/ 29 ноября 2018

попробуйте

создать новый объект пользователя

$user = new User;
$user->firstname = 'John';
$user->save();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...