2010-05-01 4 views
2

Я пытаюсь передать параметры контроля в CodeIgniter, но я получаю 404 страница не найдена ошибка, я не понимаю, я сделал то, что руководство говорит: http://codeigniter.com/user_guide/general/controllers.html#passinguriCodeIgniter: Страница не найдена при передаче параметров контроллеру?

Когда я удалить Params в индексной функции и просто получать доступ к контроллеру все работает нормально, но я не могу передать значение этого ...

Вот код, как я пытаюсь отправить: из параметров

http://mysite/123

<?php 
class Main extends Controller { 

    function index($username) { 

     echo $username; 

    } 

} 
?> 

Как я могу получить дополнительную информацию об этой ошибке от codeigniter?

спасибо.

ответ

10

С помощью этого кода CodeIgniter не может понять, хотите ли вы передать 123 методу index или если вы запрашиваете метод 123 без параметров. Вы должны явно указать метод по умолчанию, если вам нужно передать ему некоторые параметры.

http://mysite/index/123 
+0

Есть в любом случае, чтобы обойти его, и сделать его понять, что я посылаю его только индекс? Спасибо. – thedp

+1

Если у вас есть только метод 'index' в этом контроллере, вы можете настроить переписывание с помощью маршрутизации codeigniter; если у вас есть другие методы, как вы можете определить, является ли сегмент именем метода или аргументом для индекса? –

+0

Я передаю только такие параметры, когда контроллер имеет только функцию индекса. – thedp

5

Вариант 1 - Rempap ​​вызов функции в контроллере

Если ваш контроллер содержит функцию с именем _remap(), он всегда будет вызываться независимо от того, что содержит ваш URI. Он переопределяет обычное поведение, при котором URI определяет, какая функция вызывается, позволяя вам определять собственные правила маршрутизации функций. http://codeigniter.com/user_guide/general/controllers.html#remapping

Вариант 2 - Использовать собственный маршрут.

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

+0

ОК, но как я могу справиться с тем, что codeigniter просит указать имя контроллера, например: http: // mysite/main/index/123 'main' определяется как мой контроллер по умолчанию в каталоге, зачем мне его указывать? – thedp