【发布时间】:2019-09-27 06:08:32
【问题描述】:
我有自定义属性,我必须只显示具有特定角色的授权用户:
protected $appends = ['count'];
public function getCountAttribute()
{
$user = auth()->guard('api')->user();
if($user && $user->hasAnyRole(['company', 'editor'])) {
$unmoderated = $this->jobs()->where('status', 0)->count();
$active = $this->jobs()->where('status', 1)->count();
$closed = $this->jobs()->where('status', 2)->count();
return [
'all' => $unmoderated + $active + $closed,
'unmoderated' => $unmoderated,
'active' => $active,
'closed' => $closed
];
}
}
此代码每次返回 null 结果。因为无法使用 Laravel Passport 从 API 中看到授权用户。默认情况下,我们可以通过添加中间件从控制器访问授权用户:
->middleware('auth:api')
但是我如何在模型中做到这一点?
【问题讨论】:
-
您可以使用全局授权和全局请求方法,例如:auth()->user() 和 request()->user()
标签: laravel eloquent laravel-6