مهدی
9 ماه پیش توسط مهدی مطرح شد
1 پاسخ

مشکل در درخواست ایمیل بازیابی رمز

سلام دوستان
من اطلاعات کاربران از جمله ایمیل رو توی جدول metausers که با مدل Meta تعریف شده ذخیره می کنم اما موقع درخواست لینک بازیابی رمز به ارور می خورم.
توی مدل User این دو تابع رو تعریف کردم:

 public function Meta()
    {
        return $this->hasOne(MetaUser::class);
    }
public function getEmailForPasswordReset()
    {
        return $this->Meta['email'];
    }

خطایی که می گیرم توی این تابع هست و کوئری user اشتباهه ظاهرا. چجوری باید بنویسمش؟

public function sendResetLinkEmail(Request $request)
    {

        $request->validate(['email' => 'required|email']);

        $user = User::whereHas('getEmailForPasswordReset', $request->email)->first();
        if (!$user) {
            return $this->sendResetLinkFailedResponse($request, Password::INVALID_USER);
        }
        $response = $this->broker()->sendResetLink(
            $request->only('email')
        );

        return $response == Password::RESET_LINK_SENT
            ? $this->sendResetLinkResponse($request, $response)
            : $this->sendResetLinkFailedResponse($request, $response);
    }

@Raymond


ثبت پرسش جدید
میلاد قربانی
تخصص : php laravel
@miladghorbani006 9 ماه پیش مطرح شد
1

شما whereHas را روی getEmailForPasswordReset اجرا کردید که اشتباه است

        User::whereHas('Meta',function ($query) use ($request) {
            $query->where('email',$request->email);
        })->first();

whereHas برای روابط استفاده میشه


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام