我收到以下错误。
消息:尝试获取非对象的属性
表格结构:
name ='fb' value='https://www.facebook.com/mypage'
型号:
function get_fb_url(){
$query=$this->db->select('value');
$query=$this->db->from('preferences');
$query=$this->db->where('name','fb');
return $this->db->get()->row();
}
控制器:
$data['fb_url']=$this->Home_model->get_fb_url()->value;
查看:
<li><a href="<?php echo $fb_url;?>" target="_blank"><img src="css/imgs/fb.png" /></a></li>
当我运行我的页面时,它会给我错误
消息:尝试获取非对象的属性
仅当表中的value
是上面的链接时,如果其简单文本然后文本正确显示在页面上。
我如何摆脱这个错误?
答案 0 :(得分:0)
而不是echo
使用return
类型
更改
echo $this->db->get()->row();
到
return $this->db->get()->row();
在视图中的变量名称之前添加$
<a href="<?php echo $fb_url;?>"
<强>已更新强>
将型号代码更改为
function get_fb_url() {
$this->db->select('value');
$this->db->from('preferences');
$this->db->where('name', 'fb');
return $this->db->get()->row();
}
答案 1 :(得分:0)
你必须这样试试:
function get_fb_url() {
$this->db->select('value');
$this->db->from('preferences');
$this->db->where('name', 'fb');
$query = $this->db->get();
return $query->row();
}
并在Controller中:
$result = $this->Home_model->get_fb_url();
//try print $result, it must be an stdObject
$data['fb_url']=$result->value;
这是因为在$data['fb_url']=$this->Home_model->get_fb_url()->value;
/
区分了与其他函数的链接,这就是你得到这个错误的原因。
答案 2 :(得分:0)
get_fb_url返回对象数组而不是对象。所以你必须从方法中返回值。
function get_fb_url()
{
$query=$this->db->select('value');
$query=$this->db->from('preferences');
$query=$this->db->where('name','fb');
return $this->db->get()->row()->value;
}
而不是
$data['fb_url']=$this->Home_model->get_fb_url();
答案 3 :(得分:0)
在您的模型中执行此操作
public function get_fb_url() {
$this->db->select('value');
$this->db->from('preferences');
$this->db->where('name','fb');
$query = $this->db->get();
$row = $query->row();
return $row;
}
在控制器中:
$data = array();
$result = $this->Home_model->get_fb_url();
$data['fb_url'] = $result->value;
$this->load->view('your_view',$data);
在视图中
echo $fb_url;