定义了一个 Trait 来实现加载 model 的全局作用域,那么在关联查询的时候怎么删除掉被关联模型的全局作用域呢?
//去除全局作用域的方法
public function withAll()
{
return static::withoutGlobalScopes(['status']);
}
................
$addressRel = self::$relAddressUsersModel
->withAll()
->get();
//relAddressUsersModel里的全局作用域被删除了
$addressList = [];
foreach ($addressRel as $k => $v) {
$addressList[$k] = $v->getAddress()->first();
//getAddress是我的1对1的关联方法
//此时$v->getAddress->first()的到的值为null,这个地址的模型实例里面的全局作用域并没有被删除
$addressList[$k]->is_default = $v->is_default;
}
我定义了一个status的全局作用域,为部分model实例添加了该全局作用域,当我通过用户关联查询地址的时候,全局作用域生效了,但是此时我想查全部的数据,
那么在模型的关联查询的时候如何删除关联模型的全局作用域呢?
推荐文章: