Notifyにメールを送りたいのですが、動作しますが、変数を入れようとすると、未定義であることが返されます。変数をNotifyに渡す方法がわかりません。->withResult($result)
を実行しようとしましたが、うまくいきませんでした。コントローラは次のとおりです。
$result = Review::where('user_hash', '=', $data['lname_c'])->where('email', $data['email_c'])->orderBy('created_at', 'desc')->first();
$result->notify(new SendReview());
そして私のSendReview.php通知:
public function toMail($notifiable)
{
return $result['invitation_id']; // test to check if variable is passed
return (new MailMessage)
->line('Test.')
->action('Nani', url($url))
->line('Thank you');
}
レビューテーブルにuser_hashとinvitation_idがあります。これらをnotifyに渡します。私がする時 return $result['invitation_id'];
できます。理解できるといいのですが、重複する質問を確認しましたが見つかりませんでした。
これは彼らがドキュメントでそれを行う方法です。
$arr = [ 'foo' => "bar" ];
$result->notify(new SendReview($arr));
そしてあなたのSendReview.php
...
protected $arr;
public function __construct(array $arr) {
$this->arr = $arr;
}
public function toMail($notifiable) {
// Access your array in here
dd($this->arr);
}
Notification
クラスでは_$notifiable
_変数を使用する必要があります。
これは、通知が送信されるクラスのインスタンスです。したがって、ここでは、レビューオブジェクトが_$notifiable
_変数として渡されます。
logger($notifiable)
メソッドでtoMail()
としてログに記録し、そのプロパティを確認することができます。