Albus One
Albus One

Reputation: 191

codeigniter database info where Controller

I am trying to make page info rendered from database.

I have database:

page | title   | description
main | Welcome | This is the main page

Controller to get page data and render View

class Main extends CI_Controller {

    function __construct()
    {
        parent::__construct();
        $this->load->helper(array('url', 'html', 'assets'));
        $this->load->model('pages_model');
    }

    public function index() {

        // This is a page variable
        // in this case it will be "main"
       $page = strtolower(basename(__FILE__, '.php'));


        // Page data
        $data['pg'] =  $this->pages_model->page();

        // Render
        $this->load->view('templates/header', $data);
        $this->load->view('pages/main', $data);
        $this->load->view('templates/footer', $data);
    }

}

Then Model where i try to fetch data for specific page

    Class Pages_model extends CI_Model {

        function page()
        {
            $query = $this->db->select('*')->where('page', $page)->get('pages');
            return $query->result();
        }

    }

But i get error "undefined variable $page in model". How can i fix it?

Upvotes: 0

Views: 31

Answers (1)

Suresh Kamrushi
Suresh Kamrushi

Reputation: 16086

You missed to pass "$page" in model. update your code as below:

In controller:

  // Page data
        $data['pg'] =  $this->pages_model->page($page);

And in model

function page($page) 

Upvotes: 2

Related Questions