Reputation: 88
I have a multiple query
with joins
condition and I'm trying to pass an array
from my controller to my model
then pass the return
result of the query. I get this error:
Object of class Illuminate\Database\Eloquent\Collection could not be converted to int
Can someone help me to find the cause of this?
public function get_session_leave_tagv2()
{
$employee = [0 => 0];
if(Session::has('employee_leave_tag'))
{
$employee = Session::get('employee_leave_tag');
}
$emps = Tbl_payroll_leave_employeev2::select('payroll_employee_id')->whereIn('payroll_leave_employee_id',$employee)->get();
$emp = Tbl_payroll_leave_schedulev2::getallemployeeleavedata($emps)->get();
$data['new_record'] = $emp;
return json_encode($data);
}
public function scopegetallemployeeleavedata($query, $payroll_employee_id=0)
{
$query->join('tbl_payroll_leave_employee_v2','tbl_payroll_leave_schedulev2.payroll_leave_employee_id','=','tbl_payroll_leave_employee_v2.payroll_leave_employee_id')
->join("tbl_payroll_employee_basic","tbl_payroll_leave_employee_v2.payroll_employee_id","=","tbl_payroll_employee_basic.payroll_employee_id")
->join("tbl_payroll_leave_tempv2","tbl_payroll_leave_employee_v2.payroll_leave_temp_id","=","tbl_payroll_leave_tempv2.payroll_leave_temp_id")
->select(DB::raw('tbl_payroll_employee_basic.payroll_employee_id , tbl_payroll_employee_basic.payroll_employee_display_name, tbl_payroll_leave_tempv2.payroll_leave_type_id, tbl_payroll_leave_employee_v2.payroll_leave_temp_hours, sum(tbl_payroll_leave_schedulev2.consume) as total_leave_consume, (tbl_payroll_leave_employee_v2.payroll_leave_temp_hours - sum(tbl_payroll_leave_schedulev2.consume)) as remaining_leave'))
->groupBy('tbl_payroll_leave_employee_v2.payroll_leave_temp_id');
if ($payroll_employee_id != 0)
{
$query->whereIn('tbl_payroll_leave_employee_v2.payroll_employee_id', $payroll_employee_id);
}
return $query;
}
Upvotes: 0
Views: 6054
Reputation: 1036
If you are using a controller, they avoid manual json_encode, prefer below way
public function get_session_leave_tagv2()
{
$employee = [0 => 0];
if(Session::has('employee_leave_tag'))
{
$employee = Session::get('employee_leave_tag');
}
$emps = Tbl_payroll_leave_employeev2::select('payroll_employee_id')->whereIn('payroll_leave_employee_id',$employee)->get();
$emp = Tbl_payroll_leave_schedulev2::getallemployeeleavedata($emps)->get();
$data['new_record'] = $emp;
return response()->json($data);
}
Upvotes: 2