Ваши модели с множественными именами будут возвращать только один объект .
, так что в итоге вы получите ...
Array
(
[0] => allowance_object
)
и
Array
(
[0] => deduction_object
)
Хотя нам действительно нужна схема вашей базы данных, попробуйте это (и выполните те же правки для вычетов) ...
function get_allowances($eid)
{
$this->db->from('allowances');
$this->db->where('eid',$eid);
$query = $this->db->get();
if($query->num_rows()==1)
{
return $query->row_array(); //<--- return an Array
}
else
{
// make an array instead of object
$salary_obj = array();
//Get all the fields from items table
$fields = $this->db->list_fields('allowances');
foreach ($fields as $field)
{
$salary_array[$field] = 0; //<---- add array keys and set to integer 0 instead of empty string.
}
return $salary_array;
}
}
затем в вашей функции net_salary
function net_salary($eid)
{
$allownce = $this->Salary->get_allowances($eid);
$deduction = $this->Salary->get_deductions($eid);
return array_sum($allownce) - array_sum($deduction);
}