$request->user()->role 错误 - 试图获取非对象的 属性
$request->user()->role errror - trying to get property of non-object
我正在创建一个中间件,它将处理授权,比如检查角色然后授权。但是当我做 $role = $request->user()->role;
它给我错误 Trying to get property of non-object
。我在这里做错了什么。
这是我的中间件的摘录class
角色中间件
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use App\Http\Requests;
class RoleMiddleware
{
public function handle($request, $next) {
$role = $request->user()->role;
我也想知道区别,想知道哪个最好,我应该授权使用中间件、策略还是门面?
感谢帮助,
谢谢,
桑巴夫
没有"best"方式授权用户。您可以使用 Middleware、Policies 或 Gate,也可以将它们混合使用。
你的问题是:
$role = $request->user()->role;
因为用户并不总是登录。
所以你应该这样改:
$role = $request->user() ? $request->user()->role: 'guest';
为未登录的用户设置 guest
角色并消除错误。
我正在创建一个中间件,它将处理授权,比如检查角色然后授权。但是当我做 $role = $request->user()->role;
它给我错误 Trying to get property of non-object
。我在这里做错了什么。
这是我的中间件的摘录class
角色中间件
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use App\Http\Requests;
class RoleMiddleware
{
public function handle($request, $next) {
$role = $request->user()->role;
我也想知道区别,想知道哪个最好,我应该授权使用中间件、策略还是门面?
感谢帮助,
谢谢, 桑巴夫
没有"best"方式授权用户。您可以使用 Middleware、Policies 或 Gate,也可以将它们混合使用。
你的问题是:
$role = $request->user()->role;
因为用户并不总是登录。
所以你应该这样改:
$role = $request->user() ? $request->user()->role: 'guest';
为未登录的用户设置 guest
角色并消除错误。