Laravel发送带有多个复选框值的邮件

时间:2019-01-21 07:34:25

标签: laravel checkbox

我正在尝试填写客户填写表格的查询表,然后检查复选框的值,然后一旦他们提交表格,就会向我发送电子邮件,列出客户选择的所有信息,现在的问题是我要更改此[ event_id,requirement_id ]代替 id ,用 name 替换,这两个id参数来自下面列出的我的两个模型。

Model:
Event:[id,name]
Requirement:[id,name] 

控制器:

public function store(Request $request)
    {



        $summary=[
            'name' => $request->fullname,
            'email' => $request->email,
            'company' => $request->company,
            'event' => $request->event_id,
            'requirement' => $request->requirement_id
        ];
        return $summary; 
       Mail::send('emails.contact-message',[
        ],function($mail) use($summary){

            $mail->from('myemail@gmail.com', 'tester');
            $mail->to('myemail@gmail.com')->subject('Contact Message');
        });
        return redirect()->back();


    }

这是我的退货请求的结果:

{"name":"myname","email":"myemail@gmail.com","company":"mycompany","event":["1","2"],"requirement":["1","2"]}

正如您所看到的,数组Event的值为1和2,我希望将其替换为名称输出,该字段的输出应为[Wedding,Birthday],对于英语不好,希望您能理解我,我感到抱歉。

1 个答案:

答案 0 :(得分:2)

好吧,您需要从模型中提取name。 以下应该可以解决问题:

$events = App\Event::whereIn('id', $request->event_id)
    ->get()
    ->pluck('name')
    ->toArray();

$requirements = App\Requirement::whereIn('id', $request->requirement_id)
    ->get()
    ->pluck('name')
    ->toArray();

很显然,将以上示例中的name替换为模型中的实际名称字段。这只是一个例子。

$events$requirements都是一个数组,其中包含与您在请求中提供的ID匹配的名称。

您还需要如下更改$summary数组:

$summary = [
    'name' => $request->fullname,
    'email' => $request->email,
    'company' => $request->company,
    'event' => $events
    'requirement' => $requirements
];