2016-08-17 58 views
-1

的财产,我的笨初学者。在一个小的基本项目的工作,而我的列表视图我得到一个错误的工作“试图获得非对象的属性。收到错误:试图让非对象

请帮帮我! 这里的屏幕截图。 Error

My code

这是我的观点:

<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

错误本身足够描述。 – Saurabh

+0

我想你应该访问这第一 http://stackoverflow.com/help/how-to-ask – Dave

+0

嘿我试图解决它通过使用行()...但它给了我同样的错误 – Nick

回答

0

这个错误产生,因为你是在试图访问类对象样式的数组。

例:

$data['list_details'] = 'some value'; 

和访问它想:

$data->list_details; // it will generate the error "Trying to get property of non object" 
+0

请告诉我如何解决这个问题。 – Nick

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 }?> 
0

查看您的代码后。我想你已经在你的模型函数编写错误

你的模型函数必须像下面

public function get_list($id) { 
    $this->db->where('id',$id); 
    $query = $this->db->get('lists'); 
    return $query->row(); 
} 

另外,在你看来,你打印前值,请与!empty($list_details)条件检查。所以如果价值不存在,它仍然不会抛出任何错误。

我希望这会帮助你。

+0

嘿,尝试你的建议后得到相同的错误。 – Nick

+0

在加载视图之前尝试'print_r($ data); die;'在你的控制器函数中,并检查你是否获得了正确的数据。 –

0

从您的控制器中,您将模型函数调用为get_lists()。

但是模型中没有get_lists的函数。 U需要将控制器中的函数名更改为get_list()

+0

嘿,谢谢!哥哥我只是想念那个:) – Nick