2011-08-09 26 views
8

Tôi đang cố gắng để vượt qua các thông số để điều khiển trong CodeIgniter, nhưng tôi nhận được lỗi không tìm thấy trang 404, tôi không nhận được nó, tôi đã làm những gì hướng dẫn nói: http://ellislab.com/codeigniter/user_guide/general/controllers.html#passinguriCodeIgniter: Trang không tìm thấy khi truyền tham số cho bộ điều khiển?

Khi tôi loại bỏ các params trong hàm chỉ số và chỉ cần truy cập vào bộ điều khiển tất cả mọi thứ hoạt động tốt, nhưng tôi không thể vượt qua một giá trị cho nó ...

đây là mã cách tôi đang cố gắng để gửi một param: http://mysite/123

<?php 
class Main extends Controller { 

    function index($username) { 

     echo $username; 

    } 

} 
?> 

Tôi làm cách nào để có thêm thông tin về lỗi này từ người viết mã?

Cảm ơn bạn.

Trả lời

4

URL cần phải là http://mysite/Main/index/123.

URL của CodeIgniter là http://<url>/<Controller>/<Method>/<params>.

0

Kiểm tra các tập tin /application/config/routes.php và thiết lập bộ điều khiển mặc định để chính như thế này:

$route['default_controller'] = 'main'; 
0

// Đối với CI 2.0.2 //main.php

<?php 
class Main extends CI_Controller { 

    function index($username) { 

     echo $username; 

    } 

} 
?> 

// application/config/routes.php $ route ['default_controller'] = 'main';

Và sau đó thử này trong URL :: http://mysite/index.php/main/index/123

hy vọng tác phẩm này cho bạn

+0

tôi muốn hiển thị chi tiết hồ sơ của người dùng tên người dùng 123 ... và url của tôi phải giống như http: // mysite/123 trong mã vạch. –

0

Theo như tôi biết, các dữ liệu được truyền chỉ khi có nhiều hơn hai đoạn uri.

Hãy thử điều này,

<?php 
class Main extends Controller { 

    function index() { 
     $username = $this->uri->segment(3); 
     echo $username; 
    } 
} 
?> 

Và sau đó đi đến http://mysite/index.php/main/index/123

+0

tôi muốn hiển thị chi tiết hồ sơ của người dùng tên người dùng 123 ... và url của tôi phải giống như mysite/123 trong mã vạch. –

0

Thêm chức năng này vào kiểm soát của bạn. Điều này sẽ giúp nhận được đi qua arg vào chức năng chỉ số nếu phương pháp không.

function _remap($method) 
    { 
     $param_offset = 2; 

     // Default to index 
     if (! method_exists($this, $method)) 
     { 
     // We need one more param 
     $param_offset = 1; 
     $method = 'index'; 
     } 

     // Since all we get is $method, load up everything else in the URI 
     $params = array_slice($this->uri->rsegment_array(), $param_offset); 

     // Call the determined method with all params 
     call_user_func_array(array($this, $method), $params); 
    } 
Các vấn đề liên quan