我有一个简单的博客系统,其中包含posts
,tags
和posts_tags
表格。 posts
和tags
表都有id
和content
字段,而posts_tags
表的字段为post_id
和{{1} }}。我雄辩的模特是:
tag_id
和
class Post extends \Illuminate\Database\Eloquent\Model
{
public function tags()
{
return $this->belongsToMany('Tag', 'posts_tags', 'post_id', 'tag_id');
}
}
现在,据我所知,如果我打电话给class Tag extends \Illuminate\Database\Eloquent\Model
{
public function posts()
{
return $this->belongsToMany('Post', 'posts_tags', 'tag_id', 'post_id');
}
}
我应该得到至少有一个标签的帖子(所有这些都有)。但我得到的只是一个空数组(我在调用Post::has('tags')->get()
时也会得到)。我做错了什么?
答案 0 :(得分:0)
好的,在这个问题中发现了问题:Laravel Eloquent::Find() returning NULL with an existing ID
问题是,我正在使用软删除
class Post extends \Illuminate\Database\Eloquent\Model
{
use SoftDeletingTrait;
protected $dates = ['deleted_at'];
public function tags()
{
return $this->belongsToMany('Tag', 'posts_tags', 'post_id', 'tag_id');
}
}
但我的deleted_at
专栏无法使用。