Laravel |在 Notify 中传递变量
Laravel | Passing variable in Notify
我想向 Notify 发送邮件,它可以工作,但是当我尝试放置变量时,returns 发现它们未定义。我不明白如何将变量传递给 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');
}
我的评论table中有user_hash和invitation_id,我想将它们传递给通知。当我做 return $result['invitation_id'];
时它起作用了。希望我能被理解,我检查了重复的问题但找不到。
您必须在 Notification
class 中使用 $notifiable
变量。
它是 class 的一个实例,通知将被发送到该实例。所以在这里您的评论对象作为 $notifiable
变量传递。
您可以尝试在 toMail()
方法中将其记录为 logger($notifiable)
并检查其属性。
这是他们在文档中的做法。
$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);
}
对于有兴趣传递对象的人,例如 $msg_recipient
并从控制器向特定用户发送电子邮件。
控制器:
记得加use Illuminate\Support\Facades\Notification;
Notification::route('mail',$msg_recipient->email)
->notify(new MsgReceived($msg_recipient));
在你的通知中__construct
public function __construct($msg_recipient)
{
$this->username = $msg_recipient->username;
}
toMail 函数
public function toMail($notifiable)
{
$username = $this->username;
return (new MailMessage)
->greeting('Hello, '.$username)
->line('You received a brand new msg!')
->action('View msg', url('/'.$username));
}
我想向 Notify 发送邮件,它可以工作,但是当我尝试放置变量时,returns 发现它们未定义。我不明白如何将变量传递给 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');
}
我的评论table中有user_hash和invitation_id,我想将它们传递给通知。当我做 return $result['invitation_id'];
时它起作用了。希望我能被理解,我检查了重复的问题但找不到。
您必须在 Notification
class 中使用 $notifiable
变量。
它是 class 的一个实例,通知将被发送到该实例。所以在这里您的评论对象作为 $notifiable
变量传递。
您可以尝试在 toMail()
方法中将其记录为 logger($notifiable)
并检查其属性。
这是他们在文档中的做法。
$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);
}
对于有兴趣传递对象的人,例如 $msg_recipient
并从控制器向特定用户发送电子邮件。
控制器:
记得加use Illuminate\Support\Facades\Notification;
Notification::route('mail',$msg_recipient->email)
->notify(new MsgReceived($msg_recipient));
在你的通知中__construct
public function __construct($msg_recipient)
{
$this->username = $msg_recipient->username;
}
toMail 函数
public function toMail($notifiable)
{
$username = $this->username;
return (new MailMessage)
->greeting('Hello, '.$username)
->line('You received a brand new msg!')
->action('View msg', url('/'.$username));
}