在值是链接时获取错误

时间:2016-07-14 12:02:19

标签: php codeigniter

我收到以下错误。

  

消息:尝试获取非对象的属性

表格结构:

enter image description here

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是上面的链接时,如果其简单文本然后文本正确显示在页面上。

我如何摆脱这个错误?

4 个答案:

答案 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;