Search code examples
phpcodeigniter

Why does set_rules() method in CodeIgniter give error?


So, I am new to CodeIgniter and I decided to follow a tutorial which builds a CMS. I wrote the exactly same thing in my code, but when I click Submit button, it gives me this error (My CodeIgniter version is 3.1.6):

A PHP Error was encountered
Severity: Notice

Message: Undefined property: Product::$input

Filename: libraries/Form_validation.php

Line Number: 171

Backtrace:

File: /opt/lampp/htdocs/codeigniter_cms/panel/application/controllers/Product.php
Line: 40
Function: set_rules

File: /opt/lampp/htdocs/codeigniter_cms/panel/index.php
Line: 315
Function: require_once


An uncaught Exception was encountered
Type: Error

Message: Call to a member function method() on null

Filename: /opt/lampp/htdocs/codeigniter_cms/panel/system/libraries/Form_validation.php

Line Number: 171

Backtrace:

File: /opt/lampp/htdocs/codeigniter_cms/panel/application/controllers/Product.php
Line: 40
Function: set_rules

File: /opt/lampp/htdocs/codeigniter_cms/panel/index.php
Line: 315
Function: require_once

Here is my Product controller code:

<?php

class Product extends CI_Controller {

public $viewFolder = "";

public function __construct()
{
    parent::__construct();
    $this->viewFolder = "product_v";
    $this->load->model("product_model");
}
// index method
// new form method

public function save() {
    $this->load->library("form_validation");

    $this->form_validation->set_rules("title", "Title", "required|trim");
    $this->form_validation->set_message(
        array(
            "required" => "{field} field must be filled."
        )
    );

    $validate = $this->form_validation->run();
    if ($validate) {
        echo "Saved";
    } else {
        echo validation_errors();
    }
}

Here is my HTML code:

<div class="row">
<div class="col-md-12">
    <h4 class="m-b-lg">
        Add New Product
    </h4>
</div><!-- END column -->
<div class="col-md-12">
    <div class="widget">
        <div class="widget-body">
            <form action="<?php echo base_url("product/save"); ?>" method="post">
                <div class="form-group">
                    <label>Title</label>
                    <input name="title" class="form-control" placeholder="Title">
                </div>
                <div class="form-group">
                    <label>Description</label>
                    <textarea name="description" class="m-0" data-plugin="summernote" data-options="{height: 250}"></textarea>
                </div>
                <button type="submit" class="btn btn-primary btn-md btn-outline">Submit</button>
                <a href="<?php echo base_url("product/index"); ?>" class="btn btn-md btn-danger btn-outline">Cancel</a>
            </form>
        </div><!-- .widget-body -->
</div><!-- END column -->

I'm trying to fix this error for hours. Any help would appreciated.


Solution

  • So, I found the problem.

    The problem was not in CodeIgniter, but in LAMPP. So, I removed LAMPP and made a fresh install, and my problem is solved.