2010-05-06 27 views
5

Tôi đang cố gắng chuyển hướng tất cả các routs đến một bộ điều khiển chính. Dưới đây là routes.php tôiĐịnh tuyến URI CodeIgniter (động, đa ngôn ngữ)

$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"; 

Tôi cần id ngôn ngữ để được thông qua với tất cả các liên kết (như: http://site.com/en/hello-world)

Đây là bộ điều khiển chính của tôi:

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

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

tôi muốn kiểm tra xem loại tệp được xác định trước tồn tại (như: http://site.com/en/archive/05-06-2010 - ở đây loại được xác định trước sẽ được lưu trữ) rồi làm điều gì đó. Nếu không thì tìm kiếm trong cơ sở dữ liệu cho slug. Nếu không tìm thấy, hãy truy cập 404.

Vấn đề là tôi không thể nhận được thông số hàm chỉ mục ($ page_type, $ param). Cảm ơn vì sự giúp đỡ.

Trả lời

2

Nếu bạn có thể thấy định tuyến đang hoạt động, hãy thử sử dụng $this->uri->segment(n) để thay thế? Trong đó n là số phân đoạn bạn nhận được từ URI, nghĩa là http://site.com/1/2/3/4/ ...

Tôi đã gặp sự cố khi sử dụng các tham số ngầm của các phương pháp như bạn đang sử dụng.

Để biết thêm thông tin, vui lòng xem Hướng dẫn sử dụng CodeIgniter - Class URI đây:

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

Best of luck.

Các vấn đề liên quan