Php Laravel错误反射异常函数不存在
我面临这个错误,无法找到问题所在,因为它只提到函数()不存在,起初我认为函数F是caps中的caps问题,但我不是这样的,因为我已经浏览了很多行代码,如果有人能找到它的话 场景是这样的,我在mysql中有一个带有虚拟种子机数据的登录页面。PHP表单用于验证用户,然后重定向到dashboard页面,但重定向后会显示错误页面 截图,如果有帮助的话 CheckRole.phpPhp Laravel错误反射异常函数不存在,php,mysql,laravel,Php,Mysql,Laravel,我面临这个错误,无法找到问题所在,因为它只提到函数()不存在,起初我认为函数F是caps中的caps问题,但我不是这样的,因为我已经浏览了很多行代码,如果有人能找到它的话 场景是这样的,我在mysql中有一个带有虚拟种子机数据的登录页面。PHP表单用于验证用户,然后重定向到dashboard页面,但重定向后会显示错误页面 截图,如果有帮助的话 CheckRole.php <?php namespace App\Http\Middleware; use Closure; class
<?php
namespace App\Http\Middleware;
use Closure;
class CheckRole
{
public function handle($request, Closure $next)
{
$roles = $this->getRequiredRoleForRoute($request->route());
if ($request->user()->hasRole($roles) || !$roles)
{
return $next($request);
}
return redirect()->route('noPermission');
}
private function getRequiredRoleForRoute($route)
{
$actions = $route->getAction();
return isset($actions['roles']) ? $actions['roles'] : null;
}
}
Role.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Role extends Model
{
protected $table = 'roles';
protected $fillable = 'name';
protected $primaryKey = 'id';
public $timestamps = false;
public function users()
{
return $this->hasMany('App\User', 'role_id', 'id');
}
}
您忘记在/login路由中使用。
是这样的
Route::post('/login', ['as'=>'login', 'uses'=>'LoginController@postLogin']);
对于那些来自谷歌的人来说,我的情况是我打字错误
Route::get("document-types", [DocumentTypesController::class], "index");
而不是
Route::get("document-types", [DocumentTypesController::class, "index"]);
谢谢,该命令使其工作完美,但当我试图提高投票时,它说我的声誉低于15,所以我不能提高投票。再次感谢……没关系。你可以点击绿色的勾选按钮来接受我的回答。
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Role extends Model
{
protected $table = 'roles';
protected $fillable = 'name';
protected $primaryKey = 'id';
public $timestamps = false;
public function users()
{
return $this->hasMany('App\User', 'role_id', 'id');
}
}
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
protected $fillable = [
'name', 'email', 'password', 'active', 'role_id',
];
protected $hidden = [
'password', 'remember_token',
];
public function role()
{
return $this->hasOne('App\Role', 'id', 'role_id');
}
private function checkIfUserHasRole($need_role)
{
return ($need_role == $this->role->name) ? true : null;
}
public function hasRole()
{
if (s_array($roles))
{
foreach($roles as $need_role)
{
if($this->checkIfUserHasRole($need_role))
{
return true;
}
}
}
else
{
return $this->checkIfUserHasRole($roles);
}
return false;
}
}
<?php
Route::get('/', ['as'=>'/', 'uses'=>'LoginController@getLogin']);
Route::post('/login', ['as'=>'login', 'LoginController@postLogin']);
Route::group(['middleware'=>['authen', 'roles']], function()
{
Route::get('/logout', ['as'=>'logout', 'uses'=>'LoginController@getLogout']);
Route::get('/dashboard', ['as'=>'dashboard', 'uses'=>'DashboardController@dashboard']);
});
<?php
use Illuminate\Database\Seeder;
use App\User;
class UsersTableSeeder extends Seeder
{
public function run()
{
User::create([
'role_id'=>1,
'active'=>1,
'name'=>'James',
'email'=>'James@yahoo.com',
'password'=>bcrypt('james'),
'remember_token'=>str_random(10)
]);
}
}
<?php
use Illuminate\Database\Seeder;
use App\Role;
class RolesTableSeeder extends Seeder
{
public function run()
{
Role::insert([
['name'=>'Admin'],
['name'=>'Student'],
['name'=>'Teacher']
]);
}
}
Route::post('/login', ['as'=>'login', 'uses'=>'LoginController@postLogin']);
Route::get("document-types", [DocumentTypesController::class], "index");
Route::get("document-types", [DocumentTypesController::class, "index"]);