Laravel 6x 中间件

我对 Laravel 还很陌生。我一直在研究中间件以及如何实现这一点并基于文档。


我有一条通过我的 IsAdmin 中间件类的路线。


由于某种原因,当用户 IsAdmin 设置为 0 时,它仍在完成请求。


namespace App\Http\Middleware;


use Closure;

use Illuminate\Support\Facades\DB;

use Illuminate\Support\Facades\Auth;


class IsAdmin

{

    /**

     * Handle an incoming request.

     *

     * @param  \Illuminate\Http\Request  $request

     * @param  \Closure  $next

     * @return mixed

     */

    public function handle($request, Closure $next)

    {


     $IfAdmin = auth()->user()->IsAdmin;


      if (!auth()->user()->IsAdmin = "1"){


     abort(403, 'Unauthorized action.');


      }else{


        return $next($request);

        }


    }

}



在我的数据库中,用户表“IsAdmin”设置为 0。我已经能够通过在另一个页面上运行确认用户 IsAdmin 为 0 的查询来确认这一点。


波斯汪
浏览 76回答 1
1回答

一只斗牛犬

您需要进行变量比较。您的代码中有一个赋值运算符。文档 使用if (!auth()->user()->IsAdmin){    abort(403, 'Unauthorized action.');}else{    return $next($request);}
打开App,查看更多内容
随时随地看视频慕课网APP