Php Laravel:将联系人表单数据提取到通知邮件中

Php Laravel:将联系人表单数据提取到通知邮件中,php,laravel,laravel-8,Php,Laravel,Laravel 8,刚刚在我的网站上做了一个联系我的表单,我想在有人发送消息时向网站管理员发送一封电子邮件。我正在使用Laravel的通知界面来实现这一点,我成功地发送了电子邮件,但无法从邮件中获取联系人表单的数据。我怎样才能做到这一点 ContactController.php class ContactController extends Controller { public function index() { return view('contact.index'); }

刚刚在我的网站上做了一个联系我的表单,我想在有人发送消息时向网站管理员发送一封电子邮件。我正在使用Laravel的通知界面来实现这一点,我成功地发送了电子邮件,但无法从邮件中获取联系人表单的数据。我怎样才能做到这一点

ContactController.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 [
            //
        ];
    }
}

只需将您的
联系人
传递给构造函数:

公共函数存储(请求$Request){
$validatedAttributes=request()->validate([
'email'=>['required','email:rfc,dns'],
“主题”=>“必需”,
“内容”=>“必需”
]);
$contact=contact::create($validatedAttributes);//创建联系人
$user=user::role('super-admin')->select('email')->first();
$user->notify(收到新联系人($contact));//将联系人传递到notify
return response()->json('Message sent');
}
在通知中,您还必须添加属性并在构造函数中处理它

class ContactReceived extends通知
{
私人联络;
公共功能构造(联系人$Contact)
{
$this->contact=$contact;
}
托梅尔的公共职能(应呈报)
{
//$this->contact可在通知中的任何位置访问
}
}
然后您可以在通知中使用
$this->contact


您可以找到更多信息。

只需将您的
联系人
传递给构造函数:

公共函数存储(请求$Request){
$validatedAttributes=request()->validate([
'email'=>['required','email:rfc,dns'],
“主题”=>“必需”,
“内容”=>“必需”
]);
$contact=contact::create($validatedAttributes);//创建联系人
$user=user::role('super-admin')->select('email')->first();
$user->notify(收到新联系人($contact));//将联系人传递到notify
return response()->json('Message sent');
}
在通知中,您还必须添加属性并在构造函数中处理它

class ContactReceived extends通知
{
私人联络;
公共功能构造(联系人$Contact)
{
$this->contact=$contact;
}
托梅尔的公共职能(应呈报)
{
//$this->contact可在通知中的任何位置访问
}
}
然后您可以在通知中使用
$this->contact


您可以找到更多信息。

似乎对我不起作用,$this->contact在我的邮件中返回一个空数组,如果通知中的数据无效,我将无法访问任何数组。通知如何在发送的消息和contructor中的$this->联系人之间建立链接?对不起,如果我的问题看起来很愚蠢,我对这个问题有点陌生,我正在努力理解它。我已经更新了我的答案。也许,您必须重写控制器方法并创建新联系人,而不是注入它并尝试在对象上创建。这一次,它像一个符咒一样工作,谢谢!似乎对我不起作用,$this->contact在我的邮件中返回一个空数组,如果通知中有数据,我将无法访问任何数组。通知如何在发送的消息和contructor中的$this->联系人之间建立链接?对不起,如果我的问题看起来很愚蠢,我对这个问题有点陌生,我正在努力理解它。我已经更新了我的答案。也许,您必须重写控制器方法并创建新联系人,而不是注入它并尝试在对象上创建。这一次,它像一个符咒一样工作,谢谢!