LARAVEL为foreach()循环提供的无效参数
问题描述:
我有一个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);
}
答
您需要对代码进行两处更改。
第一变化: 你的数组声明$employee = array();
或$employee[];
第二变化: 它始终是一个很好的做法,以检查是否使用可变if
条件我们写foreach
循环之前是一个数组,而不是空。它将使我们摆脱您面临的错误。
if(is_array($employee) && !empty($employee))
{
foreach($employee as $emp)
{
}
}
请将$ employee数组的输出粘贴到您的问题中。 –