我试图通过登录页面访问管理页面,但我得到一个错误。
ErrorException Undefined property
Illuminate\Auth\AuthManager::$isAdmin
appHttp\\Middleware\Admin.php)。
public function handle($request, Closure $next)
{
if(auth()->isAdmin == 1){
return $next($request);
}
return redirect('login')->with('error', 'you don\'t have admin access');
}
appHttp\\Kernel.php
'admin' => \App\Http\Middleware\Admin::class,
appHttp\\Providers\User.php
protected $fillable = [
'name', 'email', 'password', 'isAdmin'
];
databasemigrations\2014_10_12_000000_create_users_table.php。
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->date('birth')->nullable();
$table->string('image')->nullable();
$table->string('email')->unique();
$table->float('balance')->default(0);
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->boolean('isAdmin')->default(0);
$table->rememberToken();
$table->timestamps();
});
}
谁能帮我搞清楚?谢谢你的帮助
你的中间件应该是这样的
public function handle($request, Closure $next)
{
if($request->user()->isAdmin == 1){
return $next($request);
}
return redirect('login')->with('error', 'you don\'t have admin access');
}
这是我的一个应用中实际运行的中间件。
class IsAdmin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (($request->user()->profile->role !== 'admin')) {
return redirect('home')->with('warning', 'Access denied! Contact admin.');
}
return $next($request);
}
}
在你的例子中: if (($request->user()->isAdmin == 1)) {