我无法将用户注册为餐厅或消费者。
我正在使用内置的Laravels注册和登录模板。但是,我需要修改注册表单以包括一个类型。还使用迁移和播种器。
迁移
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
种子
DB::table('users')->insert([
'name' => "admin",
'email' => 'admin@test.com',
'password' => bcrypt('admin'),
// 'type' => true
]);
当用户单击“注册”时,是否选中一个复选框?将包括在内,以供用户指定类型。如果用户注册为餐厅,则将授予某些权限。
答案 0 :(得分:1)
有很多方法可以做到这一点,所有方法都取决于复杂性。通常,我会这样做:
我将创建一个角色表;
然后在用户和角色之间建立多对多关系。
创建用户后,我将在(用户)类方法中分配给定角色的关系,例如:
new_cols <- tribble(
~first_0_name, ~first_0_loc, ~streak_1,
"i9", 10, 5,
"i4", 5, 4,
"i6", 7, 8,
"i8", 9, 4,
"i9", 10, 5,
NA, NA, NA,
"i1", 2, 5,
"i3", 4, 8,
"i2", 3, NA,
"i1", 2, 1
)
然后对需要角色的操作进行检查:
df=pd.DataFrame({'comments':['xxy uuicz', '', 'jiko bhht'], 'label':['positive', 'negative', 'negative']})
但是为了可扩展性和约定以及更少的支票,我将使用Gate之类的东西,如此处所示:
https://laravel.com/docs/5.8/authorization
这仍然利用了上面的一些代码,但是在全局范围内强制执行,并且仅允许基于身份验证级别的特定路由访问。
您可以混合使用这两种方法,其中show()函数可能会通过hasRole()检查针对不同的身份验证级别显示不同的内容,并返回不同的响应。或者,您也可以使用登机口通过相同的检查来阻止整个路线。这完全取决于您的用例。
答案 1 :(得分:0)
您可以按照以下文档中的说明将字段添加到注册页面:customize-laravel-registration
答案 2 :(得分:0)
您可以添加诸如is_admin(位类型)之类的字段来检查用户的类型是1还是2。