Как создать модель с характерной чертой - PullRequest
0 голосов
/ 13 июня 2019

Я хочу создать модель с функцией уведомлений,

Сначала в моем контроллере:

$collection = collect([
    [
    'name' => 'user1',
    'email' => 'user1@gmail.com',
    ],
    [
    'name' => 'user2',
    'email' => 'user2@gmail.com',
    ],
    [
    'name' => 'user1000',
    'email' => 'user1000@gmail.com',
   ],
 ]);

 $u3 = new User3($collection);        

при возврате $ u3-> getEmailList ();вывод:

[{"name":"user1","email":"user1@gmail.com"},{"name":"user2","email":"user2@gmail.com"},{"name":"user1000","email":"user1000@gmail.com"}]   

мой класс для User3:

namespace App;
use App\User;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
use Illuminate\Support\Facades\Notification;
use Illuminate\Notifications\RoutesNotifications;
use Notifications\EmailClientOfAccount;

class User3 extends User
{
   use Notifiable;
   public $emailList;

  public function __construct($emails)
  {
        $this->emailList = $emails;

  }

  public  function getEmailList()
    {
     return $this->emailList;
    }
   public function routeNotificationForMail($notification)
   {
    return $this->emailList['email'];
   }
 }

Затем я передаю $ u3 Уведомлению как:

Notification::send($u3->getEmailList(), new 

SendMailNotification ($шаблон, $ subject, $ request-> input ('mailFromTitle'), $ attachments));

Показано ниже сообщение об ошибке:

Symfony\Component\Debug\Exception\FatalThrowableError: Call to a member function routeNotificationFor() on array

Можете ли вы помочь мне решить эту проблему,Пожалуйста?

Заранее спасибо,

// ------------------- Я исправляю:

Уведомление:: send ($ u3, новое SendMailNotification ($ template, $ subject, $ request-> input ('mailFromTitle'), $ attachments));

В моем Моем уведомлении:

public function toMail($notifiable)
{
return  new EmailTo($notifiable,$this->view,$this->topic,$this- 
      >mailFrom,$this->attaches);
}

и в Build ():

public function build()
    {

        $email= $this->view($this->view);
        return $email;
    }

Но это не работает, я не знаю, где ошибка?

1 Ответ

0 голосов
/ 13 июня 2019

При отправке уведомления ожидается объект Уведомляемый, а не сам список адресов электронной почты. Если вы измените его на это, вы должны получить дальнейшее.

Notification::send($u3, new SendMailNotification($template,$subject,$request->input('mailFromTitle'),$attachments));
...