php - Laravel:将联系表单数据获取到通知门面邮件中
问题描述
刚刚在我的网站上创建了一个联系我的表格,当有人发送消息时,我想向网站的管理员发送一封电子邮件。我正在使用 Laravel 中的通知外观来执行此操作,我设法发送了电子邮件,但我无法在邮件中获取联系表单的数据。我怎样才能做到这一点?
联系人控制器.php
class ContactController extends Controller
{
public function index() {
return view('contact.index');
}
public function store(Request $request, Contact $contact) {
$validatedAttributes = request()->validate([
'email' => ['required', 'email:rfc,dns'],
'subject' => 'required',
'content' => 'required'
]);
$contact->create($validatedAttributes);
$user = User::role('super-admin')->select('email')->first();
$user->notify(new ContactReceived(), $contact);
return response()->json('Message sent.');
}
}
class ContactReceived extends Notification
{
use Queueable;
public function __construct()
{
}
public function via($notifiable)
{
return ['mail'];
}
public function toMail($notifiable)
{
return (new MailMessage)
->subject('subject')
->greeting('Hello,')
->line('some line');
}
public function toArray($notifiable)
{
return [
//
];
}
}
解决方案
只需将您的contact
传入构造函数:
public function store(Request $request) {
$validatedAttributes = request()->validate([
'email' => ['required', 'email:rfc,dns'],
'subject' => 'required',
'content' => 'required'
]);
$contact = Contact::create($validatedAttributes); // create contact
$user = User::role('super-admin')->select('email')->first();
$user->notify(new ContactReceived($contact)); // pass contact into notification
return response()->json('Message sent.');
}
在那里,在通知中,您还必须添加属性并在构造函数中处理它
class ContactReceived extends Notification
{
private $contact;
public function __construct(Contact $contact)
{
$this->contact = $contact;
}
public function toMail($notifiable)
{
// $this->contact is accessible anywhere in the notification
}
}
然后你可以$this->contact
在通知中使用。
您可以在此处找到更多信息。
推荐阅读
- java - 为什么当我将一个元素压入堆栈时会得到一个奇怪的结果?
- javascript - 检查选定的文本是否被点击
- python - Django覆盖模型表单中外键字段的显示名称
- python - 在熊猫数据框中,如何在不使用循环的情况下根据一列的数据设置其他列的值?
- python - 使用 Pandas 从列中删除第一个单词,有时是第二个单词
- gradle - 如何解决 Intellij Idea 中的 Gradle 错误
- mysql - Badstore SQL 注入:文本不起作用
- c# - 如何反编译包含 lambdas 的 .NET dll 以便构建
- javascript - 在我的网页的一部分中动态打开完整日历
- java - Jdbi 和继承:条件映射?