我有一个范围,它根据用户角色以限制方式起作用,您可以将一组规则转发到限制数据库最终输出的范围。
一个非常简化的角色限制示例:
{
"first_name": "=foo%"
}
只会返回first_name以 开头的记录foo%,这实际上意味着我已禁止具有该角色的用户查看任何不以 开头的记录foo%。
这种方法的问题在于,如果某人没有施加任何限制,他就会看到一切。我知道这是一个有效的假设,但如果没有施加限制,我想禁止一切,这样如果创建了新角色,它就没有任何权利。
目前我正在针对这种情况抛出异常:
public function apply(Builder $builder, Model $model)
{
$input = $this->getAuthValues(get_class($model));
if (count($input) < 1) {
throw new \Exception('No rights for you');
}
$jsonQuery = new JsonQuery($builder, $input); <-- class responsible for assembling the queries based on the input
$jsonQuery->search();
}
但这当然也不例外。在这种情况下我希望返回空数组。
我可以使用某种方法来优雅地退出范围并返回空结果,而无需在之后实际执行查询吗?
Cats萌萌
明月笑刀无情