1
相关的我在我的数据库树表(帖子标签Post_tag(透视表))两个表中进行选择:雄辩的ORM(laravel):从数据透视表
- 帖子(编号,内容,标题,.. 。)
- 标签(ID,TAG_NAME)
- post_tag(ID,POST_ID,TAG_ID)
现在我的问题是关于我如何选择具有相同标签的岗位,例如所有帖子:选择所有与帖子1具有类似标签的帖子。 我有创造的职位和标签表之间的关系: 在职位表:
public function tags(){
return $this->belongsToMany('App\Tag');}
在标签表:
public function posts(){
return $this->belongsToMany('App\Post');}
我的尝试:
public function similar_tags($id)
{
$post = \App\Post::find($id);
$all_posts = \App\Post::where('id','<>',$id)->where('catg_id','=',$post->catg_id);
$result=array();
if(count($post->tags)){
foreach ($post->tags as $tag) {
$all_posts = \App\Post::with('tags')->where('id','=',$id)->get();
foreach ($all_posts as $post) {
$result[]=$post->post_id;
}
}
return view('home',compact('result'));
;
}else{
$fa=0;
return view('home',compact('fa'));
}
}
你的意思是“获取多个标签的帖子”? – Drudge
@Drudge获得具有相同标签不必要的帖子所有标签你是否得到它? –
是的,但你可以发布你试过的代码? – Drudge