个性化密码恢复laravel 5.8

时间:2019-06-04 11:36:15

标签: php laravel 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 Password Broker Customization

1 个答案:

答案 0 :(得分:0)

您没有使用https://d.android.com/r/tools/task-configuration-avoidance来将人与用户合并。
尝试在迁移(播种,模型等)中将id_person替换为person_id