2017-12-01 2 views
0

私はプロジェクトのためのアドバイスと私は自分自身を入れている面白い苦境を探していますLaravel - 。複数の受信者のための複数のアレイ(Mailable /通知)

私は私の出荷モデルで複数のフィールドを持って、彼らはあります:

  • billto_id

彼らはすべてのLINをshipfrom_id shipto_id私の顧客のモデルに(異なる関係による)K:

public function billtoAccount() 
{ 
    return $this->belongsTo('App\Customer', 'bill_to'); 
} 

public function shiptoAccount() 
{ 
    return $this->belongsTo('App\Customer', 'ship_to'); 
} 

public function shipfromAccount() 
{ 
    return $this->belongsTo('App\Customer', 'ship_from'); 
} 

及びこれらの顧客は、(実際にありそうな、より良い顧客の口座として記述されます(これらは、ユーザーアカウントではありません、彼らはそれぞれの会社のプロファイルのようなより多くのですそのビジネスは)))それらに関連付けられている多数のユーザーを持つことができます。今

public function users() 
{ 
    return $this->belongsToMany(User::class); 
} 

、私はmailablesと通知をオフに送信する方法を知っている間は、私は、複数のユーザの電子メールにそれらをオフに送信して行くだろうか知って興味がありました。ですから、次のことを説明しましょう。何かが作成され、次の顧客(そしてそのユーザー)が参照されます。

  • (billto_id) - 顧客アカウント1 - ユーザ1([email protected]
  • (shipto_id) - 顧客アカウント2 - ユーザ2([email protected])&ユーザ3(email3例@ .COM)
  • (shipfrom_id) - 顧客アカウント37 - ユーザ6([email protected])今

、どのように私が持っている電子メールの配列に超えるユーザーの電子メールを移動するに行きますかそれらに通知またはマウティングが送信されましたか?

だから飛び出し必要があります:[email protected][email protected][email protected][email protected]

+0

ことができる3つの関係を通じてない、あなただけのループと関連するモデルからメールを受け取る?これは、この論理を実行する方法だけでなく、雄弁な関係でなければならないという考え方から離れたいと思うかもしれません。 – Devon

答えて

1

は@Devonのコメントにエラボレーション: これは、ビジネスロジックであります。あなたは、配列として通知される顧客インスタンスを返すメソッドをShipmentモデルに持たせることができます。

getNotifiables() : arrayは、その後、あなたの顧客モデルにあなたが届出特性

use Illuminate\Notifications\Notifiable;

そして、あなたのNotifiablesをループ、すなわち顧客を使用することができ

$notification = new ShipmentWasCreated() 
foreach ($shipment->getNotifiables() as $notifiable) { 
    $notifiable->notify($notification); 
} 
関連する問題