试图获取非对象的属性:在模型codeigniter中返回多变量

时间:2016-08-10 10:56:47

标签: php codeigniter

控制器

    $this->load->model('position_model','m_position');
                $get_supervisor[] = $this->m_position->get_supervisor($id_position);
                $get_position=$this->m_position->get_position($id_position);    
                $data1 = array(
                    'id_position' => $id_position,
                    'name_position' =>$get_position->position_name,
                    'id_supervisorposition'=>$get_supervisor->idsprvisor,
                    'id_supervisorposition1' =>$get_supervisor->idsprvisor1
                    );
                $this->position->ins_employee_position($data1);

模型

 public function get_supervisor($position_id){
$position=$this->get_position($position_id);
$unitid=$position->unitid;
$grade_id = $position->grade_id;
$idsprvisor = $position_id;   //default value;
$idsprvisor1 = $position_id;   //default value;
$get = $this->get_unit_by_unitid($unitid)->result();
$cucok=0;
foreach ($get as $unit) {  
  if ($unit->grade_id<=$grade_id) { 
switch ($cucok){
    case "0":        
      $idsprvisor=$unit->positionid;
      break;
    case "1":        
      $idsprvisor1=$unit->positionid;
      break;
  }
$cucok++;
}
return array('idsprvisor'=>$idsprvisor,'idsprvisor1'=>$idsprvisor1);}

这一行的问题

&#39; id_supervisorposition&#39; =&GT; $ get_supervisor-&GT; idsprvisor,

&#39; id_supervisorposition1&#39; =&GT; $ get_supervisor-&GT; idsprvisor1

1 个答案:

答案 0 :(得分:0)

您正在从模型函数(return array('idsprvisor'=>$idsprvisor,'idsprvisor1'=>$idsprvisor1);)返回一个数组。您无法像访问对象中的属性一样访问数组中的元素。

检查以下行

'id_supervisorposition'  => $get_supervisor->idsprvisor,
'id_supervisorposition1' => $get_supervisor->idsprvisor1,

如果您为某个对象分配$get_supervisor,则不会收到此错误,但由于$get_supervisor实际上是一个数组,因此您无法以这种方式访问​​它。

试试这个

'id_supervisorposition'  => $get_supervisor['idsprvisor'],
'id_supervisorposition1' => $get_supervisor['idsprvisor1'],