我有这张表:
topics
-------
id | title
------+----------
1 | Sport
2 | Social
posts_topics
------------
id | post_id | topic_id
------+--------------+------------
1 | 1 | 1
2 | 1 | 2
posts
------
id | title
-----+----------
1 | A Test Post
我将主题存储在topics
表格中,并使用posts_topics
链接我的posts
表格和topics
现在我想在选择帖子时选择title
主题,
在StackOverflow和Google中进行了一些搜索后,我写了这个模型:
Posts.php
public function post_topics()
{
return $this->hasMany('App\PostTopics');
}
PostTopics.php
public function topics()
{
return $this->hasManyThrough('App\Posts', 'App\Topics', 'id', 'topic_id');
}
Topics.php
protected $table = 'topics';
在我的控制器中我试图获取:
$post = Posts::with('post_topics')->find($post_id);
dd($post);
现在这段代码可以使用,但无法返回主题标题。
答案 0 :(得分:1)
在Posts.php中将代码更改为多对多关系:
public function post_topics()
{
return $this->belongsToMany('App\Topics', 'posts_topics', 'post_id', 'topic_id');
}
然后叫它:
$post = Posts::with('post_topics')->find($post_id);
试试这个并检查它是否适合你。