我是一个用户和帖子模型。它们都具有Global范围,只能获得已发布或未阻止的用户。
现在,即使作者被阻止,我也需要获取所有帖子的列表。
这是我使用的查询。
$posts = Post::withoutGlobalScopes()->paginate(10);
但是由于我附加了与之关系的作者关系,我将作者视为null(由于全局范围,如果用户被阻止)。
如何在上述查询中删除作者的全局范围并获取所有帖子(已发布/未发布)以及作者(已阻止/未阻止)。
我该怎么做?
答案 0 :(得分:1)
我有一个类似的案例,我改变了单一关系的定义(尤其是->belongsTo
),以明确地关闭通常全局的范围。如果我引用了帖子并要求其作者,我总是希望收到作者对象,即使作者被阻止了。
class Post extends Model{
public function author(){
return $this->belongsTo('User')->withBlocked();
}
}
但在我的情况下,我没有做一对多关系的反向(如果我有一个作者的参考,并询问帖子我通常并不意味着未发表,我&#如果我想要的话,请问他们。)