Laravel - Попытка получить свойство 'view' необъекта при отправке почты - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь отправить электронное письмо с подтверждением на адрес электронной почты регистрируемого клиента, но оно дает мне ошибку, а не отправляет уведомление по электронной почте. Любая помощь будет фантастической! Изо всех сил здесь, не понимаю, где находится объект, и ошибка бесполезна af.
Я сделал несколько штампов и дампов, и обнаружил, что проблема в методе сборки mailable, куда он отправляет электронную почту. Письмо отправлено, URL-адрес правильный, учетная запись подтверждена, но я получаю эту ошибку, когда я нахожусь в процессе отправки электронного письма, что не позволяет мне перенаправить на страницу подтверждения или входа в систему после регистрации нового пользователя.

Спасибо:)

Создать пользователя:

$validator = Validator::make($request->all(), [
    'name'     => ['required', 'alpha_dash', 'string', 'max:25', 'unique:customers'],
    'email'    => ['required', 'string', 'email', 'max:255', 'unique:customers'],
    'password' => ['required', 'string', 'min:6', 'confirmed'],
]);

if ( $validator->fails() ) {
    $messages = $validator->messages();
    return Redirect::back()->withErrors($validator)->withInput();
    foreach($errors->all() as $error) {
        echo $error;
    }
} elseif ( $validator->passes() ) {
    $customer = customer::create([
        'name' => $request['name'],
        'email' => $request['email'],
        'password' => Hash::make($request['password']),
        'VerifyToken' => Str::random(40),
    ]);

    $customer->SendEmailVerificationNotification();

    return redirect()->intended('login/customer');
}

SendEmailVerificationNotifaction:

public function toMail($notifiable)
{
    $verificationUrl = $this->verificationUrl($notifiable);

    if (static::$toMailCallback) {
        return call_user_func(static::$toMailCallback, $notifiable, $verificationUrl);
    }

    Mail::to($notifiable->email)->send(new validate_email($notifiable->email));
}

validate_email mailable:

    namespace App\Mail;

    use Illuminate\Support\Facades\URL;
    use Illuminate\Bus\Queueable;
    use Illuminate\Mail\Mailable;
    use Illuminate\Queue\SerializesModels;
    use Illuminate\Contracts\Queue\ShouldQueue;

    class validate_email extends Mailable
    {
        use Queueable, SerializesModels;


        public function __construct($data)
        {
            $this->email = $data;
        }

        public function build()
        {
             $url = URL::temporarySignedRoute(
             'verifyCustomer', now()->addMinutes(100),['email'=>$this->email]
            );


            return $this->from('support@xxxx.com')
                        ->view('auth.mail.validate_email')->with([
                            'url' => $url,
                            'email' => $this->email
                        ]);
        }
    }



1 Ответ

0 голосов
/ 08 ноября 2019

Похоже, что laravel не может найти ваш файл просмотра, который вы пытаетесь перенаправить в конечную точку.

«логин / клиент».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...