我正在用拉里威尔建立一个论坛。我想列出每个论坛类别及其主题如下:
Category 1
-Topic 1
-Topic 2
-Topic 2
Category 2
-Topic 1
-Topic 2
-Topic 3
But I am getting this in stead
Category 1
-Topic 1
Category 2
-Topic 1这是我在控制器中的选择查询
$this->categories = DB::table('forum_categories')
->leftjoin('forum_topics','category_id','=','forum_categories.id')
->leftjoin('forum_posts','topic_id','=','forum_topics.id')
->orderby('category_name','ASC')
->get();这是我的Forum_categories模型
public function forum_post()
{
return $this->hasMany('App\Forum_topic','category_id');
}我的Forum_topic模型
public function post()
{
return $this->hasMany('App\Forum_post','id');
}
Forum_post model
public function topic()
{
return $this->belongsTo('App\Forum_topic','id');
}我也尝试了加入左连接,并取得了类似的结果。请给我任何帮助。
我的观点
@foreach($categories as $category)
<h2> {{$category->category_name}}</h2>
-<p>{{$category->topic_subject}}</p>
@endoforeach发布于 2016-03-28 06:40:23
在这种情况下,主题实际上应该有一个belongsToMany('App\Forum_topic', 'id');关系。
此外,使用雄辩,它是一个更清洁,更强大的解决方案,在这种情况下。
Models扩展了Eloquentprotected $with = ['topic'];现在,您的类别查询将始终包含到它们的主题的连接,这样您就可以像这样访问它:
$category->topicshttps://stackoverflow.com/questions/36257183
复制相似问题