2017-11-11 17 views
0

foreachループを使用したのはdataなのでpayroll_leave_employee_idを含むSession::get('employee_leave_tag');があります。しかし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

コードに2つの変更を加える必要があります。

第一の変更: あなたの配列の宣言$employee = array();または$employee[];

第二の変更:常に良い練習 その変数が配列であるかどうかを確認し、我々はforeachループを記述する前にif条件を使用して空にしないように。あなたが直面しているエラーから私たちを救うでしょう。

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

あなたの(最初の変更)は、ライン3で宣言されていません! – Dwza

+0

@Dwzaですが、構文配列の宣言が間違っています。 –

+0

実際には、1つのエントリ配列(0 => 0)を含む配列を宣言しています。または私は間違っていますか? – Dwza

関連する問題