Php 获取错误:尝试获取非对象的属性
我是CodeIgniter的初学者。在处理一个小的基本项目时,当我处理列表视图时,我遇到一个错误“试图获取非对象的属性” 请帮帮我! 这里是屏幕截图。 以下是我的看法:Php 获取错误:尝试获取非对象的属性,php,mysql,codeigniter,codeigniter-3,Php,Mysql,Codeigniter,Codeigniter 3,我是CodeIgniter的初学者。在处理一个小的基本项目时,当我处理列表视图时,我遇到一个错误“试图获取非对象的属性” 请帮帮我! 这里是屏幕截图。 以下是我的看法: <ul id="actions"> <h4>List Actions</h4> <li><a href="<?php echo base_url(); ?>task/add/ <?php echo $list_detail->id; ?>
<ul id="actions">
<h4>List Actions</h4>
<li><a href="<?php echo base_url(); ?>task/add/ <?php echo $list_detail->id; ?>"> Add Task</a></li>
<li><a href="<?php echo base_url(); ?>lists/edit/ <?php echo $list_detail->id; ?>"> Edit List</a></li>
<li><a onclick="return confirm('Are you sure?')" href="<?php echo base_url();?>lists/delete/<?php echo $list_detail->id;?>"> Delete List</a></li></ul>
<h1><?php echo $list_detail->list_name; ?></h1>
Created on : <strong><?php echo date("n-j-Y",strtotime($list_detail->create_date)); ?></strong>
<br/><br/>
<div style="max-width:500px;"><?php echo $list_detail->list_body; ?></div>
<!-- <?php //echo print_r($query); ?>
-->
<br/><br/>
这是模型
public function get_list($id){
$query=$this->db->get('lists');
$this->db->where('id', $id);
return $query->row();
}
正在生成此错误,因为您试图访问类对象样式的数组 例: 并以如下方式访问它:
$data->list_details; // it will generate the error "Trying to get property of non object"
在模型函数上使用
$query->row()
时,然后在控制器上使用
public function get_list($id) {
$this->db->where('id',$id);
$query = $this->db->get('lists');
return $query->row_array();
}
模型函数
public function get_list($id) {
$this->db->where('id',$id);
$query = $this->db->get('lists');
return $query->row();
}
控制器
public function show($id){
// Gets data where it belongs with that id
$list_data = $this->model_name->get_list($id);
$data['id'] = $list_data->id;
$data['create_date'] = $list_data->create_date;
$data['list_body'] = $list_data->list_body;
$this->load->view('someview', $data);
}
在模型函数上使用
$query->row_array();
时,然后在控制器上使用
public function get_list($id) {
$this->db->where('id',$id);
$query = $this->db->get('lists');
return $query->row_array();
}
控制器
public function show($id) {
// Gets data where it belongs with that id
$list_data = $this->model_name->get_list($id);
$data['id'] = $list_data['id'];
$data['create_date'] = $list_data['create_date'];
$data['list_body'] = $list_data['list_body'];
$this->load->view('someview', $data);
}
$results = $this->model_name->get_list();
// Or
//$results[] = $this->model_name->get_list();
$data['list_detail'] = $results;
$this->load->view('someview', $data);
在视图上,您可以访问
<?php echo $id;?>
<?php echo $create_date;?>
<?php echo $list_body;?>
控制器
public function show($id) {
// Gets data where it belongs with that id
$list_data = $this->model_name->get_list($id);
$data['id'] = $list_data['id'];
$data['create_date'] = $list_data['create_date'];
$data['list_body'] = $list_data['list_body'];
$this->load->view('someview', $data);
}
$results = $this->model_name->get_list();
// Or
//$results[] = $this->model_name->get_list();
$data['list_detail'] = $results;
$this->load->view('someview', $data);
看法
查看您的代码后。我认为您的模型函数写错了 您的模型功能必须如下所示
public function get_list($id) {
$this->db->where('id',$id);
$query = $this->db->get('lists');
return $query->row();
}
同样在您的视图中,在打印该值之前,请检查它是否为!empty($list\u details)
。因此,如果该值不存在,它将不会抛出任何错误
我希望这将对您有所帮助。您正在从控制器中调用模型函数get_lists()
但是在模型中没有像get_list那样的函数。你需要更改controller中的函数名才能得到get_list()错误本身已经足够描述性了。我想你应该先访问它嘿,我尝试使用row()来解决它…但它给了我同样的感觉error@Nick我添加了一个答案,希望它能有所帮助。更新了答案嘿,在尝试你的建议后出现了相同的错误。在加载视图和检查是否获得了正确的数据之前,尝试在控制器函数中打印($data);死亡;。嘿,谢谢!兄弟,我错过了那个:)
public function get_list($id) {
$this->db->where('id',$id);
$query = $this->db->get('lists');
return $query->row();
}