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

これを試して

$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 に答える
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 に答える