【发布时间】:2020-01-07 22:38:52
【问题描述】:
我对 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 的查询来确认这一点。
【问题讨论】:
-
您不是在检查 2 个值是否相等,而是在分配一个值
-
正如其他人已经提到的那样。检查您的代码。 If 语句正在赋值。
-
是的!非常基础的PHP!对不起!感谢观看!