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'));
}
它的工作原理符合我的需要,但我认为有更好的方法来解决这个问题。
也许这是一个简单的问题,但对我来说,我是 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'));
}
它的工作原理符合我的需要,但我认为有更好的方法来解决这个问题。