2011-08-09 21 views
8

próbuję przekazać parametry do kontroli w CodeIgniter, ale ja dostaję 404 strony nie znaleziono błąd, ja nie rozumiem, zrobiłem co przewodnik mówi: http://ellislab.com/codeigniter/user_guide/general/controllers.html#passinguriCodeIgniter: Nie znaleziono strony podczas przekazywania parametrów do kontrolera?

Kiedy usunąć params w funkcji indeksu i tylko dostęp sterownik wszystko działa poprawnie, ale nie mogę przekazać wartość do niego ...

Oto kod sposób próbuję wysłać param: http://mysite/123

<?php 
class Main extends Controller { 

    function index($username) { 

     echo $username; 

    } 

} 
?> 

Jak mogę uzyskać więcej informacji dotyczących tego błędu z sygnatury?

Dziękuję.

Odpowiedz

4

Adres URL musi być http://mysite/Main/index/123.

Adresy URL CodeIgniter to http://<url>/<Controller>/<Method>/<params>.

0

Wyjazd plik /application/config/routes.php i ustawić domyślny sterownik do głównej takiego:

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

// dla CI 2.0.2 //main.php

<?php 
class Main extends CI_Controller { 

    function index($username) { 

     echo $username; 

    } 

} 
?> 

// aplikacji/konfiguracji/routes.php $ droga [ 'default_controller'] = 'głównym';

a następnie spróbuj to w adresie URL :: http://mysite/index.php/main/index/123

nadzieja to działa dla Ciebie

+0

Chcę wyświetlić szczegóły profilu użytkowników o nazwie użytkownika 123 ... a mój adres URL musi wyglądać jak http: // mysite/123 w skrypcie kodu. –

0

O ile mi wiadomo, dane są przekazywane tylko wtedy, gdy istnieje więcej niż dwa segmenty URI.

Spróbuj tego,

<?php 
class Main extends Controller { 

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

a następnie przejdź do http://mysite/index.php/main/index/123

+0

Chcę wyświetlić szczegóły profilu użytkowników o nazwie użytkownika 123 ... a mój adres URL musi wyglądać jak mysite/123 w skrypcie kodu. –

0

Dodaj tę funkcję pod kontrolą. Pomoże to w przechodzeniu argu do funkcji indeksu, jeśli metoda tego nie robi.

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); 
    } 
Powiązane problemy