【发布时间】:2018-12-20 20:37:25
【问题描述】:
我正在做我的第一个 laravel(和编程)项目。我想用两个表制作多用户身份验证系统:用户和角色 表格代码如下所示 用户
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->integer('role_id')->unsigned();
$table->foreign('role_id')->references('id')->on('roles');
$table->string('password');
$table->rememberToken();
$table->timestamps();
角色
$table->increments('id');
$table->string('role');
使用 laravel 命令实现鉴权
php artisan make:auth
我已经使用 laravel 命令创建了 midllewares admin、user1、user2 和 user3
php artisan make:midlleware
如何根据注册时分配给用户的用户表中的role_id实现中间件分配? 我有一个想法来做这样的事情: 在 HomeController 中
public function __construct()
{
if($this->role_id=="1"){
$this->middleware('admin'); }
if($this->role_id=="2"){
$this->middleware('user0'); }
if($this->role_id=="3"){
$this->middleware('user1'); }
if($this->role_id=="4"){
$this->middleware('user2'); }
}
但我有一个错误 未定义属性:App\Http\Controllers\HomeController::$role_id
然后我在Controller中创建了__toString方法
public function __toString()
{
return $this->role_id;
}
我尝试回显 $this 以查看其格式,但出现错误 方法 App\Http\Controllers\HomeController::__toString() 一定不能抛出异常,捕获到 ErrorException: Undefined property: App\Http\Controllers\HomeController::$role_id
我走的很好吗?或者任何人都可以给我一个建议,什么是实现多用户身份验证但没有或只有一个额外(权限)表的最简单方法?
谢谢
【问题讨论】:
-
我很确定会有一个 Addin/Plugin/.... 如果你寻找它
标签: php laravel authentication