正在尝试获取非对象的属性:在模型代码点火器中返回多变量


Trying to get property of non-object : return multi variable in model 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);}

中的问题

'id_supersposition'=>$get_supersvisor->idsprvisor,

'id_supersorposition1'=>$get_supersvisor->idsprvisor1

您正在从模型函数(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'],