2017-06-07 7 views
1

私のモデルにNotifiable形質を使用しています。Laravel routeNotifcationForMail()を使用して複数のメールアドレスに送信しますか?

ユーザは、購読済みの電子メール(文字列)のリストをコンマで区切っています。

ドキュメントとバックグラウンドの読者からは、これが単一のメールアドレスにしかルーティングされないことが示唆されています。

<?php 

namespace App; 

use Illuminate\Notifications\Notifiable; 
use Illuminate\Foundation\Auth\User as Authenticatable; 

class User extends Authenticatable 
{ 
    use Notifiable; 

    /** 
    * Route notifications for the mail channel. 
    * 
    * @return string 
    */ 
    public function routeNotificationForMail() 
    { 
     return $this->email_address; 
    } 
} 

Laravel 5.3 Notifications

私はまたMatt Stauffer on Notificationsを読んだが、そこに答えを見ることができません。

私のNotificationClass->toMail()は以下の通りです。

/** 
* Get the mail representation of the notification. 
* 
* @param Store $store 
* @return mixed 
* @throws Exception 
*/ 
public function toMail(User $user) 
{ 
    return (new MailMessage)->view('notifications.emails.activity-roundup', compact('user')); 
} 
+0

あなたのどちらかが(1人のユーザと1つの電子メール最も可能性が高いと)Userインスタンスを持っているか、ユーザーのコレクションを持っていますそれらの通知を単に連鎖して送信することができます。私はここで尋ねられているものを手に入れません。 – Kyslik

+0

私は、単一のユーザーが複数の通知アドレスを持つことができると述べました。これらは現在、正規化されていません。 '[email protected]、[email protected]、[email protected]など@ different-domain.com' – Luke

+1

今私は理解しています。私はそれについて考えて戻ってくるだろう。 5.3を使用して右か? – Kyslik

答えて

2

私はあなたが配列(see here)を送信することができますので、以下のコードをしたいと思います:

/** 
* Route notifications for the mail channel. 
* 
* @return string 
*/ 
public function routeNotificationForMail() 
{ 
    return $this->emailsToArray(); 
} 

private function emailsToArray() { 
    if (is_null($this->email_addresses)) { 
     return $this->email; //default email 
    } 
    //perform more checks that you need 
    return array_map('trim', explode(',', $this->email_addresses)) 
} 
+0

これは、私が知る限り、配列が配列ではないと予想しているので、これは機能しません。 – Luke

+0

試しましたか?それは間違っていましたか?形質は、厳密なタイピングがないことは何も期待できません。 – Kyslik

+0

最初のメールアドレスに送信するだけです。 – Luke

関連する問題