Laravel nova 限制 viewAny()

Laravel nova restrict viewAny()

当我不希望用户进入单个资源时,我可以使用策略来执行以下操作:

public function view(User $user, Model $object)
{
    if($user->groupName != $object->groupName) {
       return false;
    } else {
       return true;
    }
}

这导致您组中的组件具有眼睛图标(见红色圆圈)。我不希望用户看到的组件没有眼睛图标。

我想要的结果是 should not be seen 组件根本不显示。我怎样才能做到这一点?

我试过:

public function viewAny(User $user)
{
     // $object does not exist here so I cannot use it to filter
     if($user->groupName == $object->groupName) {
       return true;
    } else {
       return false;
    } 
}

您需要更新资源的索引查询。 see more

public static function indexQuery(NovaRequest $request, $query)
{
    return $query->where('groupName', $request->user()->group_name);
}

您也应该考虑更新相关查询。