2017-11-11 156 views
0

我有一个Session::get('employee_leave_tag');,它包含payroll_leave_employee_id,因为data不仅是我使用的一个foreach循环。但是我有一个错误的foreach提供LARAVEL为foreach()循环提供的无效参数

无效的参数()

有人可以帮助我什么原因为什么我收到这个错误?谢谢。

 public function get_session_leave_tagv2() 
    { 
      $employee = [0 => 0]; 
      if(Session::has('employee_leave_tag')) 
      { 
       $employee = Session::get('employee_leave_tag'); 
      } 

      $empdata = array(); 
      foreach($employee as $emp) 
      { 

       $employee_id = Tbl_payroll_leave_employeev2::select('payroll_employee_id') 
                  ->join('tbl_payroll_leave_schedulev2','tbl_payroll_leave_employee_v2.payroll_leave_employee_id','=','tbl_payroll_leave_schedulev2.payroll_leave_employee_id') 
                  ->where('tbl_payroll_leave_schedulev2.payroll_leave_employee_id',$emp) 
                  ->distinct() 
                  ->get(); 

        if(count($employee_id) == 0) 
        { 
         $empa = Tbl_payroll_employee_basic::join('tbl_payroll_leave_employee_v2','tbl_payroll_leave_employee_v2.payroll_employee_id','=','tbl_payroll_employee_basic.payroll_employee_id')->whereIn('tbl_payroll_leave_employee_v2.payroll_leave_employee_id',$emp)->get(); 
         array_push($empdata,$empa); 
        } 
        else 
        { 
         $empb = Tbl_payroll_leave_schedulev2::getallemployeeleavedata($employee_id)->get(); 
         array_push($empdata,$empb); 
        }        

      } 

      $data['new_record'] = $empdata; 

      return json_encode($data); 
    } 
+0

请将$ employee数组的输出粘贴到您的问题中。 –

回答

1

您需要对代码进行两处更改。

第一变化: 你的数组声明$employee = array();$employee[];

第二变化: 它始终是一个很好的做法,以检查是否使用可变if条件我们写foreach循环之前是一个数组,而不是空。它将使我们摆脱您面临的错误。

if(is_array($employee) && !empty($employee)) 
{ 
    foreach($employee as $emp) 
    { 
    } 
} 
+0

您的(第一次更改)在第3行中声明! – Dwza

+0

@Dwza,但它的语法数组声明错误。 –

+0

实际上,他声明了一个包含一个入口数组(0 => 0)的数组;或者我错了? – Dwza

相关问题