请教一个关于策略方法第一个参数的问题?

在学习策略的时候,教程中讲了update 方法接收两个参数,第一个参数默认为当前登录用户实例,第二个参数则为要进行授权的用户实例。调用时,默认情况下,我们 不需要 传递当前登录用户至该方法内,因为框架会自动加载当前登录用户

public function update(User $currentUser, User $user)
{
    return $currentUser->id === $user->id;
}

我有个疑问,第一个参数要是根据业务,需要自己手动在authorize使用的时候传入,该怎么传入呢?(第一个参数如何不用默认框架自动加载,而改为手动传入)

_Fairy
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
Summer
最佳答案

控制器里:

$this->authorize('update', $reousrce);

默认使用的是 Auth::user() ,如果你想要判断其他用户的权限,可以使用:

if (User::find(1)->can('update', $reousrce)) {
    // ID 为 1 的用户拥有更新某个资源的权限
}

另外可以顺便过一遍文档:

5年前 评论
讨论数量: 1
Summer

控制器里:

$this->authorize('update', $reousrce);

默认使用的是 Auth::user() ,如果你想要判断其他用户的权限,可以使用:

if (User::find(1)->can('update', $reousrce)) {
    // ID 为 1 的用户拥有更新某个资源的权限
}

另外可以顺便过一遍文档:

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!