Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel Auth::尝试始终返回false_Php_Laravel - Fatal编程技术网

Php Laravel Auth::尝试始终返回false

Php Laravel Auth::尝试始终返回false,php,laravel,Php,Laravel,我尝试过搜索谷歌,尝试过几种方法。但是它们都不起作用:auth::trunt仍然返回false。我的注册代码如下;在我的AuthController中,我有: protected function create(array $data) { $datetime = new \DateTime(); $datetime->format('Y-m-d H:i:s'); $datetime->getTimestamp(); return User::cre

我尝试过搜索谷歌,尝试过几种方法。但是它们都不起作用:
auth::trunt
仍然返回false。我的注册代码如下;在我的
AuthController
中,我有:

protected function create(array $data)
{
    $datetime = new \DateTime();
    $datetime->format('Y-m-d H:i:s');
    $datetime->getTimestamp();

    return User::create([
        'country_id' => 1, // default to malaysia
        'user_name' => $data['user_name'],
        'facebook_id' => null,
        'steam_link' => null,
        'password' => Hash::make($data['password']),
        'extra_information' => null,
        'remember_token' => null,
        'email' => $data['email'],
        'status_id' => 1, // active
        'is_verified' => false, // false
        'user_type_id' => 2, // normal user
        'account_status_id' => 1, // pending
        'confirmation_code' =>  str_random(30),
        'created_at' => $datetime
    ]);
}

 public function postRegister(Request $request)
 {
    $validator = $this->validator($request->all());

    if ($validator->fails()) {
        $this->throwValidationException(
            $request, $validator
        );
    }

    $user = $this->create($request->all());

    Mail::send('emails.registration_verification', ['user' => $user], function ($m) use ($user)
    {
        $m->from('no-reply@myapps.com', 'www.myapps.com');
        $m->to($user->email, $user->user_name)->subject('Verify your myappsaccount.');
    });

    return view('auth.registration_success')->with('user_name',$user->user_name)->with('email', $user->email);
}

public function emailVerification($confirmation_code)
{
    if (!$confirmation_code)
    {
        return Redirect::route('/errors/500');
    }

    $user = User::whereConfirmationCode($confirmation_code)->first();

    if (!$user)
    {
        return Redirect::route('/errors/500');
    }

    $user->account_status_id = 2; // active
    $user->confirmation_code = null;
    $user->save();

    return view('auth.verification_success')->with('user',$user);
}

public function postLogin(Request $request)
{
    $userdata = array(
        'email' => $request->email,
        'Password' => $request->password
    );

    if (Auth::attempt($userdata,true)) {
        echo 'test';
    }
    else {
        var_dump($userdata);
    }
}
我对密码进行了相应的哈希运算,我还将密码列从60更改为255,但登录仍然失败

预期的工作流程是用户注册,系统向他们发送电子邮件进行验证。用户单击电子邮件中的链接,将触发
emailVerification
方法。验证完成后,用户应能够登录


我遗漏了什么吗?

我很确定你的错误在这里:

$userdata = array(
        'email' => $request->email,
        'Password' => $request->password
);

数据库中的
password
字段是小写的,您正在检查以大写
p
开头的字段。将
'Password'=>$request->Password
更改为
'Password'=>$request->Password
,它应该可以工作。

我的坏,在用户模型中包含以下代码帮助我解决问题

public function getAuthPassword()
    {
        return $this->password;
    }

我不确定,但你是否尝试过将“密码”键更改为“密码”(全部小写)?它肯定应该是小写的,密码列应该只有60个字符长。嗨…密码都是小写的…嗨,我已将“密码”更改为“密码”,但仍然失败。