2011-08-09 11 views
8

estoy tratando de pasar parámetros a un control en CodeIgniter, pero estoy consiguiendo el error 404 de página no encontrada, yo no lo entiendo, hice lo que la guía dice: http://ellislab.com/codeigniter/user_guide/general/controllers.html#passinguriCodeIgniter: ¿No se encuentra la página al pasar los parámetros a un controlador?

cuando quito los parametros en la función de índice y sólo el acceso al controlador todo funciona bien, pero no puedo pasar un valor a ella ...

Aquí es el código de la forma en que estoy tratando de enviar un param: http://mysite/123

<?php 
class Main extends Controller { 

    function index($username) { 

     echo $username; 

    } 

} 
?> 

¿Cómo puedo obtener más información respecto a este error de CodeIgniter?

Gracias.

Respuesta

4

La URL es necesario que haya http://mysite/Main/index/123.

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

0

desproteger el archivo /application/config/routes.php y establecer el controlador por defecto a como estos:

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

// Para IC 2.0.2 //main.php

<?php 
class Main extends CI_Controller { 

    function index($username) { 

     echo $username; 

    } 

} 
?> 

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

Y luego tratar esto en URL :: http://mysite/index.php/main/index/123

esperanza que esto funciona para usted

+0

Quiero mostrar el perfil de detalle de los usuarios de nombre de usuario 123 ... y mi URL debe parecerse a http: // mysite/123 en CodeIgniter. –

0

Por lo que yo sé, los datos se pasan sólo cuando hay más de dos segmentos URI.

Prueba de esto,

<?php 
class Main extends Controller { 

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

Y luego ir a http://mysite/index.php/main/index/123

+0

Quiero mostrar el perfil de detalle de los usuarios de nombre de usuario 123 ... y mi URL debe parecerse mysite/123 en CodeIgniter. –

0

Añadir esta función a su control. Esto ayudará a pasar arg a la función de índice si el método no lo hace.

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); 
    } 
Cuestiones relacionadas