修改默认 Laravel 身份验证
Modifying default Laravel authentication
我使用
导入了 Laravels 身份验证
Php artisan make: auth
我正在尝试向注册页面添加一个附加字段。新字段是一个 drop-down,有两个用户类型选项。 Landlord/Tenant。当我点击注册时,我被重定向到登录脚本,我的所有详细信息仍然存在,注册还没有完成。其他任何地方都可能有问题,
我更新了我的模型并重新迁移了它。我还将它添加到用户 class.
的可填充数组中
注册Blade模板
<div class="form-group row">
<label for="user-type" class="col-md-4 col-form-label text-md-right">User Type</label>
<div class="col-md-6">
<select class ="form-control" id="user-type">
<option>Landlord</option>
<option>Tenant</option>
</select>
@if ($errors->has('user-type'))
<span class="invalid-feedback">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
</div>
注册控制器
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
'user-type' => 'required|string',
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return \App\User
*/
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'user-type' => $data['user-type']
]);
}
用户Class
protected $fillable = [
'name', 'email', 'password', 'user-type'
];
用户迁移
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('user-type');
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
如您所见,我已将 user-type 添加到所有我认为需要添加的地方,我是否遗漏了什么地方?
创建 HTML
元素时,在请求中发送的是值,这些值由每个字段上名为 name
的属性 keyed
,并且如您所见,您的 select 缺少该属性,请尝试:
<select class="form-control" name="user-type">
要对此进行测试,您可以在创建新用户之前将 dd($data);
放入 create
方法中
我使用
导入了 Laravels 身份验证Php artisan make: auth
我正在尝试向注册页面添加一个附加字段。新字段是一个 drop-down,有两个用户类型选项。 Landlord/Tenant。当我点击注册时,我被重定向到登录脚本,我的所有详细信息仍然存在,注册还没有完成。其他任何地方都可能有问题,
我更新了我的模型并重新迁移了它。我还将它添加到用户 class.
的可填充数组中注册Blade模板
<div class="form-group row">
<label for="user-type" class="col-md-4 col-form-label text-md-right">User Type</label>
<div class="col-md-6">
<select class ="form-control" id="user-type">
<option>Landlord</option>
<option>Tenant</option>
</select>
@if ($errors->has('user-type'))
<span class="invalid-feedback">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
</div>
注册控制器
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
'user-type' => 'required|string',
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return \App\User
*/
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'user-type' => $data['user-type']
]);
}
用户Class
protected $fillable = [
'name', 'email', 'password', 'user-type'
];
用户迁移
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('user-type');
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
如您所见,我已将 user-type 添加到所有我认为需要添加的地方,我是否遗漏了什么地方?
创建 HTML
元素时,在请求中发送的是值,这些值由每个字段上名为 name
的属性 keyed
,并且如您所见,您的 select 缺少该属性,请尝试:
<select class="form-control" name="user-type">
要对此进行测试,您可以在创建新用户之前将 dd($data);
放入 create
方法中