Laravel 删除特定查询的全局作用域
我有一个用户和Post模型。它们都具有全局作用域,只能获取已发布或未阻止的用户 现在,我需要得到所有文章的列表,即使作者被阻止 这是我使用的查询Laravel 删除特定查询的全局作用域,laravel,laravel-5.3,Laravel,Laravel 5.3,我有一个用户和Post模型。它们都具有全局作用域,只能获取已发布或未阻止的用户 现在,我需要得到所有文章的列表,即使作者被阻止 这是我使用的查询 $posts = Post::withoutGlobalScopes()->paginate(10); 但是,由于我附加了作者关系,因此我将作者设置为null(如果用户被阻止,则由于全局范围) 如何在上面的查询中删除作者的全局范围,并获得所有文章(已发布/未发布)以及作者(已阻止/未阻止) 我该怎么做 我有一个类似的案例,我改变了单一关系的定义
$posts = Post::withoutGlobalScopes()->paginate(10);
但是,由于我附加了作者关系,因此我将作者设置为null(如果用户被阻止,则由于全局范围)
如何在上面的查询中删除作者的全局范围,并获得所有文章(已发布/未发布)以及作者(已阻止/未阻止)
我该怎么做 我有一个类似的案例,我改变了单一关系的定义(尤其是
->belongsTo
),明确地关闭了通常是全局范围。如果我引用了一篇文章并询问其作者,我总是希望收到Author对象,即使作者被阻止
class Post extends Model{
public function author(){
return $this->belongsTo('User')->withBlocked();
}
}
但是在我的例子中,我没有对一对多的关系做相反的处理(如果我提到一位作者,并且要求发表文章,我通常不是指未发表,如果我想要的话,我会要求发表)。使用
::with('Author')
在调用withoutGlobal
scopes()之前,使用:with('Author')
,不,它具有相同的效果。author
关系位于附加的数组中。所以,它总是被称为。