Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在laravel中对null调用成员函数isAdmin()_Php_Laravel 5.2_Fatal Error - Fatal编程技术网

Php 在laravel中对null调用成员函数isAdmin()

Php 在laravel中对null调用成员函数isAdmin(),php,laravel-5.2,fatal-error,Php,Laravel 5.2,Fatal Error,如果用户是管理员,我想进行基本身份验证,然后请求下一步,否则重定向到主页 User.php 这是因为没有用户会话。中间件仅在用户登录时工作。因此,您需要先登录,然后检查中间件请尝试以下操作:在User.php模型上将您的方法更改为静态 static function isAdmin(){ if ($this->role()->name=="administrator"){ return true; } retur

如果用户是管理员,我想进行基本身份验证,然后请求下一步,否则重定向到主页

User.php


这是因为没有用户会话。中间件仅在用户登录时工作。因此,您需要先登录,然后检查中间件

请尝试以下操作:在User.php模型上将您的方法更改为静态

    static function isAdmin(){
      if ($this->role()->name=="administrator"){
            return true;
       }
       return false;
    }
下一步:修改中间件,它应该可以工作

  <?php

    namespace App\Http\Middleware;

    use Closure;

    class Admin
    {
        /**
         * Handle an incoming request.
         *
         * @param  \Illuminate\Http\Request  $request
         * @param  \Closure  $next
         * @return mixed
         */
        public function handle($request, Closure $next)
        {
            if (auth()->check()){

                if (\Admin::isAdmin()){

                    return $next($request);

                }
            }

            return abort(404); //redirect the user to not found page.
        }
    }

@HilmiErdemKEREN我该怎么办do@HilmiErdemKEREN
null
,为什么它的null.iam会登录,然后也
null
@HilmiErdemKEREN你能帮我吗:)
<?php

Route::get('/', function () {
    return view('welcome');
});


Route::get('/admin',function(){
    return view('admin.index');
});
Route::group(['middleware'=>'admin'],function(){

    Route::resource('/admin/users','AdminUsersController');

});




Route::auth();

Route::get('/home', 'HomeController@index');
    static function isAdmin(){
      if ($this->role()->name=="administrator"){
            return true;
       }
       return false;
    }
  <?php

    namespace App\Http\Middleware;

    use Closure;

    class Admin
    {
        /**
         * Handle an incoming request.
         *
         * @param  \Illuminate\Http\Request  $request
         * @param  \Closure  $next
         * @return mixed
         */
        public function handle($request, Closure $next)
        {
            if (auth()->check()){

                if (\Admin::isAdmin()){

                    return $next($request);

                }
            }

            return abort(404); //redirect the user to not found page.
        }
    }