Laravel 5.1身份验证使用Pin来注册用户

时间:2015-11-25 10:28:24

标签: laravel-5.1

我正在为学校创建网站,我正在使用laravel内置身份验证来注册新用户,但我想在注册表单中添加一个用于刮刮卡引脚的字段,以便检查引脚表是否使用该引脚。我的问题是如果authcontroller中的create function无法返回视图。

所以我收到了此错误消息

Guard.php第430行中的错误异常:

  

传递给Illuminate \ Auth \ Guard :: login()的参数1必须是   Illuminate \ Contracts \ Auth \ Authenticatable的实例,实例   照亮\ Http \ RedirectResponse给出

这是我的authcontroller

 * Create a new user instance after a valid registration.
 *
 * @param  array  $data
 * @return User
 */


protected function create(array $data)
{

    $spin=$data['pin'];
    $pins = Pin::where('pin', $spin)
           ->get();

    if(  $pins[0]->status == 0)
    {      

    Pin::where('pin', $spin)
      ->update(['status' => 1]);  

      return User::create([
        'name' => $data['name'],
        'username' => $data['username'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
    ]);

    }

    else{

    return redirect()->back();



    }   

This is my registration form

1 个答案:

答案 0 :(得分:0)

原因是您错误地修改了受保护的ghc-pkg方法。从文档化的注释中查看返回响应必须始终为create()?另一方面,您有时会返回重定向响应 - 因此您会收到错误消息。

有些laravel类可能会尝试使用User方法对用户进行身份验证。当它收到create()实例时,会抛出错误,因为它期望RedirectResponse的实例

请勿在{{1​​}}方法

中返回User以外的任何内容
相关问题