核心/ Model.php上的Codeigniter未定义属性

时间:2016-03-16 03:28:44

标签: php codeigniter

控制器

    public function editItem(){
         $this->load->helper('form'); 
         $this->load->model('ItemModel'); 
         $data['items'] = $this->ItemModel->itemlist(); 
         $item_details = $this->ItemModel->edititem($this->input->get('id'));    
         $data2['item_name'] = $item_details->name; //THIS IS LINE 28
         $data2['item_description']= $item_details->description; 
         $data2['item_price'] = $item_details->price;
         $this->load->view('item/item_edit',$data2); 
    }

我的观点有误,我不知道为什么

A PHP Error was encountered

Severity: Notice

Message: Undefined property: Item::$name

Filename: core/Model.php

Line Number: 77

Backtrace:

File: C:\xampp\htdocs\itwa213\application\controllers\Item.php
Line: 28
Function: __get

File: C:\xampp\htdocs\itwa213\index.php
Line: 292
Function: require_once

我已在配置中检查了我的自动加载,并且已正确配置

$autoload['libraries'] = array('database');

3 个答案:

答案 0 :(得分:1)

你可以试试这个

public function editItem() {
     $this->load->helper('form'); 
     $this->load->model('ItemModel'); 

     $data['items'] = $this->ItemModel->itemlist(); 

     $item_details = $this->ItemModel->edititem($this->input->get('id'));    

     $data2['item_name'] = $item_details['name']; //THIS IS LINE 28
     $data2['item_description'] = $item_details['description']; 
     $data2['item_price'] = $item_details['price'];

     $this->load->view('item/item_edit',$data2); 
}

答案 1 :(得分:0)

你的控制器功能改变为这样

public function editItem(){ 
  $this->load->helper('form');
  $this->load->model('ItemModel');

  $data['items'] = $this->ItemModel->itemlist(); 
  $data2['item_details'] =$this->ItemModel->edititem($this->input->get('id')); 

  $this->load->view('item/item_edit',$data2); 
} 

并在您的视图页面中

echo $item_details->name;

答案 2 :(得分:0)

您应该查看您使用的get函数的代码。尝试先将$this->input->get('id')替换为现有的ID号。检查是否成功。如果通过使用现有的id号成功,那么它应该让你的功能不起作用或出错。我很少使用$ this-> input-> get()但是$ this-> input-> post()。

在您的编辑链接上

,您可以使用: <a href="controller/method/id">edit</a>。 所以id是第三段uri。使用$this->uri->segment(3);获取第三个段并将$ item_id变量存储到控制器中。所以,不需要使用$ this-&gt; input-&gt; get();获取item_id值。