Подтвердите адрес электронной почты, добавленный в URL-адрес в Laravel, используя только правило проверки laravel - PullRequest
1 голос
/ 06 мая 2020

Я работаю в Laravel.

У меня есть URL-адрес, как показано ниже:

http://localhost/udonls/public/mastercandidate/candidate/reset-password/11/das@sdadas.com 

Теперь есть функция, которая похожа на

public function sendCanResLink(Request $request, $id, $email) 
{
       // So in this function how should i validate "$email" using laravel validation ?
}

Вот маршрут:

Route::get('/candidate/reset-password/{id}/{email}', [
   'as'    => 'candidate.reset.password',
   'uses'  => 'CandidateSmdnContoller@sendCanResLink'
]);

Итого !! Я хочу подтвердить свой адрес электронной почты, который я получаю в запросе GET в личинках, с проверкой Laravel.

Я знаю метод regex, но хочу использовать метод проверки Laravel.

Ответы [ 2 ]

1 голос
/ 06 мая 2020

Может быть примерно так:

 public function sendCanResLink(Request $request, $id, $email) 
 {
    try {
         $validator = Validator::make($email, [
            "email" => "required|email:rfc,dns,filter,spoof",
         ]);
    } catch(ValidationException $validation) {
        return redirect()->back();
    }
  }
1 голос
/ 06 мая 2020

Зачем тратить ресурсы на валидацию в таком случае, если вы можете проверить пользователя индивидуально?

Route::get('/candidate/reset-password/{user}/{email}', [
   'as'    => 'candidate.reset.password',
   'uses'  => 'CandidateSmdnContoller@sendCanResLink'
]);

public function sendCanResLink(Request $request, User $user, $email) 
{
   if($user->email !== $email) return 'some error';

   // reset code here

   return 'ok'; 
}

2) С валидатором

public function sendCanResLink(Request $request, $id, $email) 
{
   Validator::make(compact('email'), [
       'email' => ['required', 'string', 'regex:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}/', 'max:255', 'unique:YOUR_TABLE']
   ])->validate();
  // auto redirect back if error and use 
  // @error('email') {{ $message }} @enderror in blade 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...