Laravel 5.2多种形式注册页面
问题描述:
我正在使用Laravel 5.2。*进行项目工作,我正在使用默认的认证控制器和视图。我的最终目标是在1页上有2个表格用于注册。当用户注册时,他们可以注册为提供商或普通用户。我在'用户'数据库中创建了一个名为'provider'的新列。Laravel 5.2多种形式注册页面
我还使用LaravelCollective HTML/Forms来生成表单。
我创建的视图两种形式:
<div class="row">
<div class="col-md-6">
<h2>Family Form</h2>
{!! Form::open() !!}
{{ Form::label('name', "Name:") }}
{{ Form::text('name', null, ['class' => 'form-control']) }}
{{ Form::hidden('provider', false) }}
{{ Form::label('email', "Email:") }}
{{ Form::text('email', null, ['class' => 'form-control']) }}
{{ Form::label('password', "Password:") }}
{{ Form::password('password', ['class' => 'form-control']) }}
{{ Form::label('password_confirmation', "Confirm Password:") }}
{{ Form::password('password_confirmation', ['class' => 'form-control']) }}
{{ Form::submit('Register', ['class' => 'btn btn-primary btn-block form-spacing-top']) }}
{!! Form::close() !!}
</div>
<div class="col-md-6">
<h2>Provider Form</h2>
{!! Form::open() !!}
{{ Form::label('name', "Name:") }}
{{ Form::text('name', null, ['class' => 'form-control']) }}
{{ Form::hidden('provider', true) }}
{{ Form::label('email', "Email:") }}
{{ Form::text('email', null, ['class' => 'form-control']) }}
{{ Form::label('password', "Password:") }}
{{ Form::password('password', ['class' => 'form-control']) }}
{{ Form::label('password_confirmation', "Confirm Password:") }}
{{ Form::password('password_confirmation', ['class' => 'form-control']) }}
{{ Form::submit('Register', ['class' => 'btn btn-primary btn-block form-spacing-top']) }}
{!! Form::close() !!}
</div>
</div>
,然后在验证\ AuthController我编辑了“创建”功能添加“提供商”布尔:
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'provider' => $data['provider'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
现在我的问题是,无论我填写什么表格,总是在'提供者'下的数据库中保存为FALSE或'0'
这里是表格的HTML输出:
<div class="row">
<div class="col-md-6">
<h2>Family Form</h2>
<form method="POST" action="//localhost:3000/auth/register" accept-charset="UTF-8"><input name="_token" type="hidden" value="Rli5AmRKkov64hPt6AEfr7yOLwA5EwUmozVePgQL">
<label for="name">Name:</label>
<input class="form-control" name="name" type="text" id="name">
<input name="provider" type="hidden" value="">
<label for="email">Email:</label>
<input class="form-control" name="email" type="text" id="email">
<label for="password">Password:</label>
<input class="form-control" name="password" type="password" value="" id="password">
<label for="password_confirmation">Confirm Password:</label>
<input class="form-control" name="password_confirmation" type="password" value="" id="password_confirmation">
<input class="btn btn-primary btn-block form-spacing-top" type="submit" value="Register">
</form>
</div>
<div class="col-md-6">
<h2>Provider Form</h2>
<form method="POST" action="//localhost:3000/auth/register" accept-charset="UTF-8"><input name="_token" type="hidden" value="Rli5AmRKkov64hPt6AEfr7yOLwA5EwUmozVePgQL">
<label for="name">Name:</label>
<input class="form-control" name="name" type="text" id="name">
<input name="provider" type="hidden" value="1">
<label for="email">Email:</label>
<input class="form-control" name="email" type="text" id="email">
<label for="password">Password:</label>
<input class="form-control" name="password" type="password" value="" id="password">
<label for="password_confirmation">Confirm Password:</label>
<input class="form-control" name="password_confirmation" type="password" value="" id="password_confirmation">
<input class="btn btn-primary btn-block form-spacing-top" type="submit" value="Register">
</form>
</div>
</div>
如果没有办法支持同一注册页面两种形式,有没有一种方法来创建2个独立的寄存器页,一个“家庭”和一个“提供者”,同时仍然使用默认的身份验证系统?我试过不过前面只要有一个验证问题将始终重定向到/认证/注册
感谢您的帮助:)
答
显然,我忘了“供应商”添加到$ User模型可填写..
我已经解决了我自己的问题,但是如果有更好的方法去做这件事,我很乐意学习!
应用程序\ user.php的:
protected $fillable = [ 'name', 'provider', 'email', 'password' ];
什么是供应商领域的在你的数据库中的数据类型? –
就我所见,两种形式的字段都是相同的(?)。为什么你希望他们成为两种形式,那么首先,为什么不简单地使用单选按钮让用户选择一种形式_他们想要注册哪种类型的账户? – CBroe
@TheAlpha是布尔型 –