CodeIgniter URI маршрутизация (динамическая, многоязычная) - PullRequest
5 голосов
/ 06 мая 2010

Я пытаюсь перенаправить все маршруты на один основной контроллер. Вот мои маршруты. Php

$route['default_controller'] = "main";
$route['scaffolding_trigger'] = "";

//$route['(\w{2})/(.*)'] = '$2';
//$route['(\w{2})'] = $route['default_controller'];

$route['(en|ge)/(:any)'] = $route['default_controller']."/index/$1";
$route['(:any)'] = $route['default_controller']."/index/$1";

Мне нужно, чтобы идентификатор языка передавался с каждой ссылкой (например: http://site.com/en/hello-world)

Вот мой главный контроллер:

class Main extends Controller
{
    function __construct()
    {
        parent::Controller();       
    }

    function index($page_type=false, $param=false) 
    {
        die($page_type.' | '.$param.'| Aaa!');  
    }
} 

Я хочу проверить, существует ли предопределенный тип файла (например: http://site.com/en/archive/05-06-2010 - здесь предопределенный тип будет архивным), а затем сделать что-то. Если нет, то поиск в базе данных для слизняков. Если не найдено, перейдите к 404.

Проблема в том, что я не могу получить параметры индексной функции ($ page_type, $ param). Спасибо за помощь.

1 Ответ

2 голосов
/ 20 августа 2010

Если вы видите, что маршрутизация работает корректно, попробуйте вместо этого использовать $this->uri->segment(n)? Где n - номер сегмента, который вы получаете из URI, т.е. http://site.com/1/2/3/4/...

Я видел проблемы с использованием неявных параметров методов, которые вы используете.

Для получения дополнительной информации см. Руководство пользователя CodeIgniter - класс URI здесь:

http://codeigniter.com/user_guide/libraries/uri.html

Удачи.

...