سلام دوستان
من اطلاعات کاربران از جمله ایمیل رو توی جدول 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);
}
شما whereHas را روی getEmailForPasswordReset اجرا کردید که اشتباه است
User::whereHas('Meta',function ($query) use ($request) {
$query->where('email',$request->email);
})->first();
whereHas برای روابط استفاده میشه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟