Eloquent在多对多

时间:2015-06-29 21:40:06

标签: php eloquent relationships

我有一个简单的博客系统,其中包含poststagsposts_tags表格。 poststags表都有idcontent字段,而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()时也会得到)。我做错了什么?

1 个答案:

答案 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专栏无法使用。