1

我找不到这个问题的解决方案:严重性:注意 --> 试图获取非对象的属性

请帮助我找出我的错误。

我的模型方法:

  function get_AllDays_by_templateRoutine_id($rid) 
{ 
    $this->load->database(); 
    $this->db->select('day_id');
    $res =  $this->db->order_by('day_id', 'DESC')->get_where('template_user_days', array('routine_id'=> $rid));
    $ret = array();

    foreach ($res->result_array() as $row) {
        $ret[] = $row['day_id'];
    } 
    return $ret; 
}  

和我的控制器

public function install_template()
{ 
      $rid = $this->input->post('rid'); 
      $userid=$this->session->userdata('userid');

        $urid=$this->routinemodel->getMaxUserRoutineId($userid);//method returning one value  

      $userdays_template=$this->templateroutinemodel->get_AllDays_by_templateRoutine_id($rid); 
       if(is_array($userdays_template)) 
        {
          foreach ($userdays_template as $row2) 
             {  
                    $day_value=$row2['day_id'];//Error:--> Trying to get property of non-object**
             }
         }    
}

                                 }  
4

2 回答 2

2

尝试使用

$day_value = $row->day_id;

更新:

$userdays_template=$this->templateroutinemodel->get_AllDays_by_templateRoutine_id($rid); 

for($x=0;$x<count($userdays_template);$x++)
{
  for($y=0;$y<count($userdays_template[$x]);$y++)
  {
    echo $userdays_template[$x][$y]->day_id;
  }
}

我刚刚注意到您返回的是一个对象数组,而不仅仅是这里的对象

foreach ($res->result_array() as $row) {
    $ret[] = $row['day_id'];
} 

如果它不起作用,你能输入你应该得到的结果吗?

于 2013-09-06T02:22:23.753 回答
2

尝试这个

如果您的 $userdays_template 是一个对象,则使用

 $day_value=$row2->day_id;

如果您的 $userdays_template 是一个数组,则使用

if(isset($row2['day_id'])){
 $day_value=$row2['day_id'];
}
于 2013-09-06T04:22:45.207 回答