CodeIgniter: Page not found when passing parameters to a controller?

10,742

Solution 1

With that URL, CodeIgniter can't understand if you want to pass 123 to the index method or if you're requesting the 123 method with no parameters. You have to explicitly name the default method if you need to pass it some parameters.

http://mysite/index/123

Solution 2

Option 1 - Rempap the function call in your controller

If your controller contains a function named _remap(), it will always get called regardless of what your URI contains. It overrides the normal behavior in which the URI determines which function is called, allowing you to define your own function routing rules. http://codeigniter.com/user_guide/general/controllers.html#remapping

Option 2 - Use a custom route.

http://codeigniter.com/user_guide/general/routing.html

Share:
10,742
thedp
Author by

thedp

A common startup dweller 🎈

Updated on June 13, 2022

Comments

  • thedp
    thedp almost 2 years

    I'm trying to pass parameters to a control in codeigniter, but I'm getting 404 page not found error, I don't get it, I did what the guide says: http://codeigniter.com/user_guide/general/controllers.html#passinguri

    When I remove the params in the index function and just access the controller everything works fine, but I can't pass a value to it...

    Here is the code the way I'm trying to send a param:

    http://mysite/123

    <?php
    class Main extends Controller {
    
        function index($username) {
    
            echo $username;
    
        }
    
    }
    ?>
    

    How can I get more info regarding this error from codeigniter?

    Thank you.