首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我如何在Laravel中列出论坛类别及其主题

我如何在Laravel中列出论坛类别及其主题
EN

Stack Overflow用户
提问于 2016-03-28 06:32:05
回答 1查看 233关注 0票数 1

我正在用拉里威尔建立一个论坛。我想列出每个论坛类别及其主题如下:

代码语言:javascript
复制
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

这是我在控制器中的选择查询

代码语言:javascript
复制
$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模型

代码语言:javascript
复制
    public function forum_post()
  {
    return $this->hasMany('App\Forum_topic','category_id');
  }

我的Forum_topic模型

代码语言:javascript
复制
public function post()
    {
        return $this->hasMany('App\Forum_post','id');
    }
Forum_post model
public function topic()
    {
        return $this->belongsTo('App\Forum_topic','id');
    }

我也尝试了加入左连接,并取得了类似的结果。请给我任何帮助。

我的观点

代码语言:javascript
复制
@foreach($categories as $category)
<h2> {{$category->category_name}}</h2>
-<p>{{$category->topic_subject}}</p>
@endoforeach
EN

回答 1

Stack Overflow用户

发布于 2016-03-28 06:40:23

在这种情况下,主题实际上应该有一个belongsToMany('App\Forum_topic', 'id');关系。

此外,使用雄辩,它是一个更清洁,更强大的解决方案,在这种情况下。

  1. 确保您的Models扩展了Eloquent
  2. 如果您的表名与模型名称不匹配,则在您的类中声明它:‘受保护的$table = "my_table";
  3. 添加一个protected $with = ['topic'];

现在,您的类别查询将始终包含到它们的主题的连接,这样您就可以像这样访问它:

代码语言:javascript
复制
$category->topics
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36257183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档