Статья, Комментарий и Пользовательские отношения в Laravel 5.1 - PullRequest
0 голосов
/ 06 октября 2018

Я сделал блог, где вы можете CRUD статьи и оставлять комментарии.Все хорошо и работает хорошо.

Я просто хочу заставить Laravel творить чудеса, когда пользователь публикует комментарий к статье, а не жестко кодировать article_id и user_id.

Comment::create([
    'body' => request('body'),
    'article_id' => $article->id,
    'user_id' => Auth::User()->id]
);

Это так?Можно ли использовать отношения Eloquent в Laravel, чтобы объединить некоторые функции / методы и немного упростить их?

1 Ответ

0 голосов
/ 06 октября 2018

Зависит.Если user_id и article_id оба nullable (что я сомневаюсь, но давайте предположим, что они есть), вы можете использовать Eloquent следующим образом:

$user = Auth::User()->id;
$article = Article::find($request('article_id'));
$comment = Comment::create(['body' => $request('body')]);
$comment->article()->associate($article);
$comment->user()->associate($user);

В противном случае, другой метод, который может немного улучшить егобит выглядит примерно так:

$article = Article::find('article_id');
$article->comments()->save(new Comment([
    'body' => request('body');
    'user_id' => Auth::User()->id;
]);

То же самое можно сделать и для пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...