【发布时间】:2018-06-05 07:36:59
【问题描述】:
我正在尝试授权用户对视图文件中的某些内容限制进行授权,因为我知道 laravel 支持的身份验证(门、中间件)之间唯一可以在视图文件中使用的授权是(策略)身份验证。 并且策略身份验证通过使用 laravel 模型工作,而我的数据源不是模型,我只是从一些 Web 服务获取数据。
我创建了一个新策略 (isPlatinum)
<?php
namespace App\Policies;
use App\User;
use App\WebUser;
use Illuminate\Auth\Access\HandlesAuthorization;
class isPlatinum
{
use HandlesAuthorization;
/**
* Create a new policy instance.
*
* @return void
*/
public function __construct()
{
}
public function view(WebUser $user){
return $user->user->subscription->type === 'platinum';
}
}
注意:App\WebUser 不是模型文件,它只是一个从 web 服务获取用户信息的类。
在我的刀片视图文件中
@cannot('view',$isPlatinum)
This page is for Platinum Users
@endcannot
给出错误
Undefined variable: isPlatinum (View:
我知道我应该只对模型使用 Laravel Policy Auth,在我的情况下,我应该使用什么是正确的 laravel auth,我可以在视图文件中使用?
【问题讨论】:
标签: php laravel authorization