auth check在laravel 5.2中注册后返回true

时间:2016-11-23 08:49:25

标签: login laravel-5.2 registration

我正在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>&nbsp;Logout</a>
     </div>
@endif

注册后,注销网址现在显示在标题中。如何改变这种情况。提前谢谢。

1 个答案:

答案 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());
}