未定义的属性:CI_Loader :: $ input

时间:2014-06-04 08:47:16

标签: php codeigniter

我刚刚开始学习CodeIgniter,并在下面的例子中遇到了麻烦:  我的控制器:    

      class Site extends CI_Controller 
      {
        public function __construct()
    {
parent::__construct(); } function index() { $this->load->view('options_view'); } function create() { $data = array ( 'title' => $this->load->input->post('title'), 'content' => $this->load->input->post('content') ); $this->site_model->add_record($data); $this->index(); } }
 我的模型是:    
    class Site_model extends CI_Model
    {
     function get_records()
     {
     $q = $this->db->get('articles');
     return $q->result();
     }
    function add_record($data)
     { 
      $this->db->insert('articles',$data);
      return;
     }
    }

我的观点是:

<pre>
       <?php echo form_open('site/create');?>
    <p>
      <label for="title">Title:</label>
      <input type="text" name="title" id="title"/>
    </p>
     <p>
      <label for="content">Content:</label> 
      <input type="text" name="content" id="content"/> 
      </p>
      <p>
      <input type="submit" value="Submit"/> 
      </p>
      <?php echo form_close();?>
</pre>

所以当我点击提交按钮时,我得到的错误如下:   Severity: Notice Message: Undefined property: CI_Loader::$input Filename: controllers/site.php Line Number: 19

任何想法都会有用!Thanx !!

2 个答案:

答案 0 :(得分:3)

在您的控制器中尝试此操作。

 class Site extends CI_Controller 
      {
        public function __construct()
    {

         parent::__construct();
    }
    function index()
    {
    $this->load->view('options_view');
    }
        function create()
    {
    $data = array (
     'title' => $this->input->post('title'),
     'content' => $this->input->post('content')
    );
     $this->site_model->add_record($data);
     $this->index();
    }
      }

不需要在函数create中的input语句前面使用load。 试试吧..

答案 1 :(得分:0)

这些行应该像

'title' => $this->input->post('title'),
'content' => $this->input->post('content')

'title' => $this->load->input->post('title'),
'content' => $this->load->input->post('content')

并且还需要在parent :: __ construct()之后加载表单helper.so;添加此行,或者您可以添加autoload.php页面

$this->load->helper('form');

如果您遇到任何问题,请告诉我。