我是CodeIgniter的初学者。在一个小的基础项目上工作,当我在List视图上工作时,我收到一个错误“试图获取非对象的属性。
请帮帮我! 这里的屏幕截图。 Error
以下是我的观点:
<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 show($id){
$data['list_detail'] = $this->List_model->get_lists($id);
$data['main_content']='lists/show';
$this->load->view('layout/main',$data);
}
这是模型
public function get_list($id){
$query=$this->db->get('lists');
$this->db->where('id', $id);
return $query->row();
}
答案 0 :(得分:0)
生成此错误是因为您尝试以类对象样式访问数组。
例如:
$data['list_details'] = 'some value';
并像访问它一样:
$data->list_details; // it will generate the error "Trying to get property of non object"
答案 1 :(得分:0)
在模型功能上使用$query->row()
然后在控制器上
模型功能
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);
}
在视图中,您可以访问
<?php echo $id;?>
<?php echo $create_date;?>
<?php echo $list_body;?>
public function get_list() {
$query = $this->db->get('lists');
return $query->result();
}
控制器
$results = $this->model_name->get_list();
// Or
//$results[] = $this->model_name->get_list();
$data['list_detail'] = $results;
$this->load->view('someview', $data);
查看
<?php foreach ($list_detail as $list) {?>
<?php echo $list->id;?>
<?php echo $list->create_date;?>
<?php echo $list->list_body;?>
<?php }?>
答案 2 :(得分:0)
查看代码后。我认为你的模型功能
中写错了您的模型功能必须如下所示
public function get_list($id) {
$this->db->where('id',$id);
$query = $this->db->get('lists');
return $query->row();
}
同样在您打印价值之前的视图中,请检查!empty($list_details)
的条件。所以如果值不存在,它就不会抛出任何错误。
我希望这会对你有所帮助。
答案 3 :(得分:0)
在控制器中,您将模型函数称为get_lists()。
但是模型中没有get_lists的功能。你需要将控制器中的函数名更改为get_list()