Я перехожу от laravel 5.2 до 5.3, и я хотел бы отправить пользовательский текст, когда пользователь хочет сбросить свой пароль. Теперь я вижу уведомления об использовании laravel, а «тема» по умолчанию жестко закодирована в ядре laravel. У меня уже есть представление для этого (из 5.2) и уведомлений могут использовать пользовательский вид, поэтому я попытался это:Переместить переменную в вид уведомления на laravel
В User.php (модель)
/**
* Send the password reset notification.
*
* @param string $token
* @return void
*/
public function sendPasswordResetNotification($token)
{
$this->notify(new SendLinkMailPasswordReset($token, $this->full_name));
}
Я создаю мое уведомление «SendLinkMailPasswordReset» для «переопределения» Laravel один и вот мой метод toMail():
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
return (new MailMessage)
->view('auth.emails.password')
->with
(
[
'user'=> $this->full_name,
'token'=> $this->token,
]
);
}
Если я делаю dd($this->full_name)
, он работает, но когда я восстановить свой пароль я получаю Undefined variable: user
Не знаю, подходит ли with
или если я хотел бы сделать это. Для получения дополнительной информации, если я делаю это в моем sendPasswordResetNotification
public function sendPasswordResetNotification($token)
{
$to=$this->email;
$user= $this;
Mail::send('auth.emails.password', ['user'=>$user, 'token'=>$token], function($message) use ($to) {
$message->to($to)->subject('Reset your password');
});
}
Он работает. Мое использование уведомлений - это хорошо или в моем случае я должен направить почту вместо этого?
с только будет до следующего запроса. он использует флэш-сеанс – Vikash
спасибо за ваш ответ. когда я читаю docs https://laravel.com/api/5.3/Illuminate/Notifications/Messages/MailMessage.html#method_with, он сказал: «Добавить строку текста в уведомление». поэтому я использовал его. Знаете ли вы другой метод? – sam12