我找不到解决此问题的方法:严重性:通知 - >试图获取非对象的属性
请帮我弄清楚我的错误。
我的模型方法:
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**
}
}
}
}
答案 0 :(得分: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'];
}
如果它不起作用,你能输入你应该得到的结果吗?
答案 1 :(得分:2)
试试这个
如果你的$ userdays_template是一个对象,那么使用
$day_value=$row2->day_id;
如果你的$ userdays_template是一个数组,那么使用
if(isset($row2['day_id'])){
$day_value=$row2['day_id'];
}