首页 > 解决方案 > 个性化密码恢复 laravel 5.8

问题描述

在一个项目中,我正在使用 laravel,对于其他人的问题,我有两个表:

用户: id, password, remember_token, person_id

人: id, name, email

问题是恢复密码所需的数据位于两个不同的表中。

ForgotPasswordController.php文件中

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
use Illuminate\Http\Request;
use App\User;
use App\Persona;

class ForgotPasswordController extends Controller
{


    use SendsPasswordResetEmails;


    public function sendResetLinkEmail(Request $request)
    {
        $this->validate($request, ['email' => 'required|email']);


        $response = $this->broker()->sendResetLink(
            $request->only('email')
        );

        switch ($response) {
            case \Password::INVALID_USER:
                return response()->error($response, 422);
                break;

            case \Password::INVALID_PASSWORD:
                return response()->error($response, 422);
                break;

            case \Password::INVALID_TOKEN:
                return response()->error($response, 422);
                break;
            default:
                return response()->success($response, 200);
        }
    }
}

显然,我收到一个找不到电子邮件列的错误。

SQLSTATE [42703]:未定义列:7 错误:列“电子邮件”不存在第 1 行:从“用户”中选择 *,其中“电子邮件”= $1 限制 1 ^(SQL:从“用户”中选择 *,其中“电子邮件”= email@email.es 限制 1)

我终于通过帮助我解决这个问题来解决它。Laravel 5.3 密码代理自定义

标签: phplaravellaravel-5.8

解决方案


您没有使用Eloquent 模型约定将人与用户结合起来。
尝试在迁移中替换为id_personperson_id播种机、模型等)


推荐阅读