5
votes

I am a beginner using codeigniter. I am using following url "http://localhost/ci/index.php/shopcart" to access the controller and I am getting error 404 page not found

Controller Code

     <?php

    class Cart extends CI_Controller { // Our Cart class extends the Controller class

        function Cart()
        {
            parent::CI_Controller(); // We define the the Controller class is the parent. 

        }


    }

        function index()
        {
            $this->load->model('cart_model'); // Load our cart model for our entire class 
            $data['products'] = $this->cart_model->retrieve_products(); // Retrieve an array with all products
            $data['content'] = 'cart/products'; // Select our view file that will display our products
            $this->load->view('index', $data); // Display the page with the above defined content
        }
?>

Model Code

<?php 

class Cart_model extends Model { // Our Cart_model class extends the Model class
// Function to retrieve an array with all product information
    function retrieve_products(){
        $query = $this->db->get('products'); // Select the table products
        return $query->result_array(); // Return the results in a array.
    }  

}

Route

$route['default_controller'] = "shopcart";

autoload

$autoload['libraries'] = array('cart' , 'database');
$autoload['helper'] = array('form');
3
localhost/ci/index.php/shopcart is the problem, since it is searching for index.php folder. Try localhost/ci/shopcart - Siim Kallari
Your class name seems as Cart, so you can try localhost/ci/index.php/cart or localhost/ci/cart - Shravan Sharma
localhost/ci/shopcart displays "The requested URL /ci/shopcart was not found on this server." localhost/ci/index.php/cart also displays 404 page not found. I am using codeigniter 3 - Hammad Halim
This is not good code for CI3. This is code used in CI v <= 1.7.2 - Tpojka

3 Answers

3
votes

codeigniter works on base_url~/index.php/class_nm/function/segment3. Now in your case change file name Cart.php.

localhost/ci/index.php/cart/index

and make sure your function index is public, I guess it will fix your problem :)

1
votes

You are getting the 404 page not found error because controller "shopcart" is not defined. Instead you have defined a controler "cart". So you should try localhost/ci/index.php/cart instead.

1
votes

Try adding the url helper as well. That works for me!