Php 使用for loop laravel保存到阵列中

Php 使用for loop laravel保存到阵列中,php,laravel,laravel-5.4,Php,Laravel,Laravel 5.4,我有一个方法来处理来自动态表单的请求 public function step2(Request $request) { $this->validate($request, [ 'title.*' => 'required', 'f_name.*' =>'required', 'l_name.*' =>'required', 'dob_month.*' =>'required', 'do

我有一个方法来处理来自动态表单的请求

public function step2(Request $request)
{
    $this->validate($request, [
      'title.*' => 'required',
      'f_name.*'   =>'required',
      'l_name.*'   =>'required',
      'dob_month.*'   =>'required',
      'dob_day.*'   =>'required',
      'dob_year.*'   =>'required',
      'gender.*'   =>'required',
      'email.*'   =>'required',
      'contact.*'   =>'required',
      'address1.*'   =>'required',
      'address2.*'   =>'required',
      'town.*'   =>'required',
      'state.*'   =>'required',
      'mailbox.*'   =>'required',
      'insurance.*'   =>'required',
    ]);   

$data = array(
    for ($i=0; $i <$request->limit ; $i++){
        "title$i" => $request->title[$i],
        "f_name$i" => $request->f_name[$i],
        if (!isEmpty($request->m_name)) {
            "m_name$i" => $request->m_name[$i],
        }            
        "l_name$i" => $request->l_name[$i],
        "dob_month$i" => $request->dob_month[$i],
        "dob_day$i" => $request->dob_day[$i],
        "dob_year$i" => $request->dob_year[$i],
        "gender$i" => $request->gender[$i],
        "email$i" => $request->email[$i],
        "contact$i" => $request->contact[$i],
        "address1$i" => $request->address1[$i],            
        if (!isEmpty($request->m_name)) {
            "address2$i" => $request->address2[$i],
        }  
        "town$i" => $request->town[$i],
        "mailbox$i" => $request->mailbox[$i],
        "insurance$i" => $request->insurance[$i],
    }

    Mail::send('emails.contact', $data, function($message) use ($data){
    $message->from(''sender@demo.com);
    $message->to('receiver@demo.com');
    $message->subject("!!New Mail!!");
      });

    );
  return view('success');
}
公共功能步骤2(请求$Request)
{
$this->validate$请求[
'title.*'=>'required',
'f_name.*'=>'required',
'l_name.*'=>'required',
'dob_month.*'=>'required',
'dob_day.*'=>'required',
'dob_year.*'=>'required',
'性别。*'=>'必填',
'email.*'=>'required',
'联系人。*'=>'必填',
'address1.*'=>'required',
'address2.*'=>'required',
'town.*'=>'required',
'state.*'=>'required',
'邮箱。*'=>'必需',
'保险。*'=>'必需',
]);   
$data=数组(
对于($i=0;$i限制;$i++){
“标题$i”=>$request->title[$i],
“f_name$i”=>$request->f_name[$i],
如果(!isEmpty($request->m_name)){
“m_name$i”=>$request->m_name[$i],
}            
“l_name$i”=>$request->l_name[$i],
“月结日$i”=>$request->月结日[$i],
“dob_日$i”=>$request->dob_日[$i],
“dob_年$i”=>$request->dob_年[$i],
“性别$i”=>$request->gender[$i],
“email$i”=>$request->email[$i],
“联系人$i”=>$request->contact[$i],
“address1$i”=>$request->address1[$i],
如果(!isEmpty($request->m_name)){
“address2$i”=>$request->address2[$i],
}  
“town$i”=>$request->town[$i],
“邮箱$i”=>$request->mailbox[$i],
“保险$i”=>$request->insurance[$i],
}
邮件::发送('emails.contact',$data,函数($message)使用($data){
$message->from(“”)sender@demo.com);
$message->to($message)receiver@demo.com');
$message->subject(!!新邮件!!”);
});
);
返回视图(“成功”);
}
我正在尝试使用for循环将所有传入请求保存在数组中,以便将其作为电子邮件发送。但我有一个错误
分析错误:语法错误,意外的'for'(T_for),应为'”
。解决此问题的最佳方法是什么。

您可以使用
$key
=>
$value
对创建如下数组:

$data = array();

foreach($request->title as $key=>$value){

    $insert = array();

    $insert['title'.$key] = $value;
    $insert['f_name'.$key] = $request->f_name[$key];

    if (!isEmpty($request->m_name)) {
        $insert['m_name'.$key] = $request->m_name[$key];
    }            

    $insert['l_name'.$key] = $request->l_name[$key];
    $insert['dob_month'.$key] = $request->dob_month[$key];
    $insert['dob_day'.$key] = $request->dob_day[$key];
    $insert['dob_year'.$key] = $request->dob_year[$key];
    $insert['gender'.$key] = $request->gender[$key];
    $insert['email'.$key] = $request->email[$key];
    $insert['contact'.$key] = $request->contact[$key];
    $insert['address1'.$key] = $request->address1[$key];

    if (!isEmpty($request->m_name)) {
        $insert['address2'.$key] = $request->address2[$key];
    }  

    $insert['town'.$key] = $request->town[$key];
    $insert['mailbox'.$key] = $request->mailbox[$key];
    $insert['insurance'.$key] = $request->insurance[$key];

    array_push($data, $insert);
}

现在,将此
$data
与邮件一起发送。

您不能在数组中运行for循环。这就是为什么它会给出一个错误。尝试在数组外使用for循环来填充数组中的数据@tanja forsberggy您应该在数组外循环,并在for循环内附加到数组中请检查行->$message->from(“”)sender@demo.com);@尼廷约翰:这只是一个打字错误。@ParthGoswami解决这个问题的最佳方法是什么?