Уведомление Larvel Не работает для настраиваемого поля электронной почты - PullRequest
0 голосов
/ 13 июля 2020

Я хочу отправить уведомление своему владельцу clini c, когда администратор добавит clini c. Ниже приведен мой код, но письма не отправляются, пожалуйста, не указывайте, что поле электронной почты в моей базе данных clinicemail. Ниже приведен мой код в clini c controller

public function storeClinics(Request $request)
    {
        $postdata = $request->all();

        $api_key = Str::random(16);
        $checkApiKey = Clinic::where('api_key', $api_key)->first();
        if(!empty($checkApiKey)) {
            $api_key = Str::random(16);
        }

        $clinic = new Clinic;
        $clinic->clinicName=$postdata['user_name'];
        $clinic->clinicFname=$postdata['contact_fname'];
        $clinic->clinicLname=$postdata['contact_sname'];
        $clinic->clinicAddress=$postdata['contact_address'];
        $clinic->clinicCity=$postdata['contact_city'];
        $clinic->clinicState=$postdata['contact_state'];
        $clinic->clinicZip=$postdata['zip'];
        $clinic->clinicEmail=$postdata['email'];
        $clinic->clinicPhone=$postdata['phone'];
        $clinic->clinicURL=$postdata['clinic_website'];
        $clinic->clinicPub="no";
        $clinic->api_key=$api_key;
        $clinic->save();
        Notification::route('mail', $clinic->clinicEmail)->notify(new ClinicRegisteredNotification($clinic));

        return redirect('clinics');
    }

Я также создал уведомление с именем ClinicRegisteredNotification в папке notificcations, а затем код

<?php

namespace App\Notifications;

use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;

class ClinicRegisteredNotification extends Notification {

    public function __construct($clinic) {
        $this->user = $clinic;
    }

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

    public function toMail($notifiable) {
        return (new MailMessage)
            ->success()
            ->subject('Welcome')
            ->line('Dear ' . $this->clinic->clinicName . ', we are happy to see you here.')
            ->line('Please tell your friends about us.');
    }

}

1 Ответ

0 голосов
/ 14 июля 2020

В ClinicRegisteredNotification попробуйте добавить защищенный атрибут перед методом __construct($clinic) и изменить строку в конструкторе.

Начало ClinicRegisteredNotification должно быть таким:

class ClinicRegisteredNotification extends Notification {

protected $clinic;

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

Это должно решить проблему.

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