Я пытаюсь сохранить следующие входящие данные в БД, и они успешно сохранены, кроме одной вещи.
Как я печатаю: $request->user()->posts()->save($answer);
, все сохраняется нормально, кроме post_id
,
И если я заменю его на: $post->answers()->save($answer);
, все сохраняется нормально, кроме user_id
,
Как мне отредактировать метод save (), чтобы сохранить оба?
Код от контроллера:
public function postAnswer(Request $request, $post_id)
{$post = Post::where('id', $post_id)->first();
$body = $request['body'];
$pros = $request['pros'];
$cons = $request['cons'];
$answer = new Answer();
$answer->body = $body;
$answer->pros = $pros;
$answer->cons = $cons;$post->answers()->save($answer);
Вы пытаетесь сохранить два отношения одновременно. AFAIK, это не сработает.
Сначала вам нужно сохранить сообщение для пользователя, а затем сохранить ответ в сообщении.
$request->user()->posts()->save($post);
$post->answers()->save($answer);
ОБНОВИТЬ
ОП нуждается в user_id
сохранены в answers
стол, поэтому нам нужно сохранить эти отношения, а также. С двумя строками кода выше, $answer
ничего не знает о пользователе, только родитель $post
— поэтому мы должны явно сказать $answer
что оно принадлежит user
:
$request->user()->answers()->save($answer);
Возможно, вам придется добавить это к вашим моделям:
Post.php:
protected $fillable = [
...
'post_id',
...
];
Или необходимые поля, удачи.