我正在laravel 5.2中创建用户注册和登录页面。两者都在同一页面中,并由导航栏标签分隔。对于注册,我使用了表单操作,对于登录,我在按钮点击中使用了ajax。两者都很好。但问题是,在注册本身之后,登录URL将更改为注销。我只有在用户登录网站后才需要它。以下是我的注册功能。
protected function create(array $data)
{
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
$meber_role = Role::select('id')->where('slug', 'member')->get();
$RoleUser = new RoleUser;
$data['role_id'] = $meber_role[0]->id;
$RoleUser->fill($data); /* user Role */
$user->RoleUser()->save($RoleUser);
return $user;
}
我在视图中使用以下代码来检查用户是否已登录。如果用户登录,登录标题将更改为注销。
@if(!Auth::check())
<div class="sign-in">
<a href="{{url('login')}}" title="login" class="clsComLogin"><i class="icon-user icons"></i><span>Login</span></a>
</div>
@else
<div>
<a href="{{ url('auth/logout') }}"><i class="fa fa-sign-out"></i> Logout</a>
</div>
@endif
注册后,注销网址现在显示在标题中。如何改变这种情况。提前谢谢。
答案 0 :(得分:2)
默认情况下,用户在注册后登录。要更改此情况,请添加或覆盖postRegister()
功能。这只会注册,但不能登录。
public function postRegister(Request $request)
{
$validator = $this->validator($request->all());
if ($validator->fails()) {
$this->throwValidationException(
$request, $validator
);
}
$this->create($request->all());
return redirect($this->redirectPath());
}