Laravel - Ошибка отправки почты не может вернуть свойство не объекта - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть очень странная проблема: когда я отправляю представление электронной почты в методе построения почтового сообщения, оно отправляет нормально, но выдает ошибку «Попытка получить свойство« представление »не-объекта», и поэтому я могуt перенаправить на страницу после отправки почты.

Почтовое сообщение:

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

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {


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


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

        dd('doesent work here');
    }

Зарегистрировать контроллер:

protected function createCustomer(Request $request)
    {
        // dd($request->all());
        // $this->validator($request->all())->validate();
        $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('auth/login');
        }
    }

SendEmailVerificationNotification:

class SendEmailVerificationNotification
{
    /**
     * Handle the event.
     *
     * @param  \Illuminate\Auth\Events\Registered  $event
     * @return void
     */
    public function handle(Registered $event)
    {
        if ($event->user instanceof MustVerifyEmail && ! $event->user->hasVerifiedEmail()) {
            $event->user->sendEmailVerificationNotification();
        }
    }
}

sendEmailVerification function:

 public function sendEmailVerificationNotification()
    {
        $this->notify(new \App\Notifications\account_verification_notification);
    }

account_verification_notification:

public function via($notifiable)
    {
        return ['mail'];
    }

    /**
     * Get the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    public function toMail($notifiable)
    {

        Mail::to($notifiable['email'])->send(new validate_email($notifiable['email']));
        // return (new MailMessage)
        //             ->line('The introduction to the notification.')
        //             ->action('Notification Action', url('/'))
        //             ->line('Thank you for using our application!');
    }

Любая помощь будет абсолютно фантастической! Поскольку это третий день борьбы с этой ошибкой :( Спасибо:)

...