Laravel 5 中的三个表格,帮助 Eloquent 个模型

Three tables in Laravel 5 with help Eloquent models

也许这是一个简单的问题,但对我来说,我是 Laravel 的新手吗,这是个问题,所以我有三个 table

文章、用户、评论。他们有这样的关系

在第http://localhost/users/{user_name}页我想获取属于该用户的所有文章和所有评论。

三个模型如下所示:

用户

public function articles()
{
    return $this->hasMany('App\Article');
}

public function comments()
{
    return $this->hasMany('App\Comment');
}

文章

public function user()
{
    return $this->belongsTo('App\User');
}

public function comments()
{
    return $this->hasMany('App\Comment');
}

评论

public function user()
{
    return $this->belongsTo('App\User');
}

public function article()
{
    return $this->belongsTo('App\Article');
}

我的 Controller Show 方法如下所示:

public function show(User $user)
{
    $user->with(['comments','articles'])->get();

    return view('users.show', compact('user', 'comments', 'articles'));
}

看来我该有的都有了

        {{ dump($user) }}
        {{ dump($user->articles) }}
        {{ dump($user->comments) }}
        {{ dd() }}

并且使用 foreach 我获得了所需的属性,但是我如何创建 link 我可以看到 link 的文章和评论给她

@foreach($user->comments as $comment)
    <div class="block">
                                         //article title  
        <div><a href="{{ url('articles', $comment->articles->title) }}"></a></div>
        <div>{{ $comment->comment }}</div>
@endforeach

为了显示文章,我使用文章标题,而不是 ID。

谢谢

首先,'comments''articles'这里什么都不做。

return view('users.show', compact('user', 'comments', 'articles'));

至于link,

<a href="{{ url('articles', [ $comment->article ]) }}">{{ $comment->article->title }}</a>

我解决了这个问题,更新了我的控制器:

public function show(User $user)
{
    $params = Comment::where('user_id', $user->id)->get()

    return view('users.show', compact('user', 'params'));
}

它的工作原理符合我的需要,但我认为有更好的方法来解决这个问题。