index - redirect codeigniter
Cómo obtener información de Controlador, Acción, URL con CodeIgniter (10)
Tengo estas urls:
Cómo obtener el nombre del controlador, el nombre de la acción de estas URL. Soy codeigniter novato. ¿Hay alguna función auxiliar para obtener esta información
Ex:
$params = helper_function( current_url() )
Donde $params
convierte en algo así
array (
''controller'' => ''system/settings'',
''action'' => ''edit'',
''...''=>''...''
)
Como una adición
$this -> router -> fetch_module(); //Module Name if you are using HMVC Component
De otra manera
$this->router->class
En lugar de usar segmentos URI, debe hacer esto:
$this->router->fetch_class(); // class = controller
$this->router->fetch_method();
De esta forma, sabrá que siempre usa los valores correctos, incluso si está detrás de una URL enrutada, en un subdominio, etc.
Hola, deberías usar el siguiente enfoque
$this->router->fetch_class(); // class = controller
$this->router->fetch_method(); // action
para este propósito, pero para usarlo necesita extender su gancho desde el CI_Controller
y funciona como un amuleto, no debe usar segmentos uri
Los métodos están en desuso.
$this->router->fetch_class();
$this->router->fetch_method();
Puede acceder a las propiedades en su lugar.
$this->router->class;
$this->router->method;
Ver la guía del usuario codeigniter
Métodos de enrutamiento URI fetch_directory (), fetch_class (), fetch_method ()
Con las propiedades
CI_Router::$directory
,CI_Router::$class
yCI_Router::$method
son públicas y sus respectivosfetch_*()
ya no hacen nada más para simplemente devolver las propiedades - no tiene sentido guardarlas.Esos son todos métodos internos no documentados, pero hemos optado por desaprobarlos por el momento para mantener la compatibilidad con versiones anteriores por si acaso. Si alguno de ustedes los ha utilizado, ahora puede acceder a las propiedades:
$this->router->directory; $this->router->class; $this->router->method;
Podría usar la clase URI :
$this->uri->segment(n); // n=1 for controller, n=2 for method, etc
También me dijeron que el siguiente trabajo, pero actualmente no puedo probar:
$this->router->fetch_class();
$this->router->fetch_method();
Si usa el segmento $ this-> uri->, si las reglas de reescritura de URL cambian, se perderán los nombres de los segmentos.
clase de controlador no funciona ninguna función.
así que te recomiendo usar los siguientes scripts
global $argv;
if(is_array($argv)){
$action = $argv[1];
$method = $argv[2];
}else{
$request_uri = $_SERVER[''REQUEST_URI''];
$pattern = "/.*?//index/.php//(.*?)//(.*?)$/";
preg_match($pattern, $request_uri, $params);
$action = $params[1];
$method = $params[2];
}
Utilice este código en cualquier lugar de la clase o bibliotecas
$current_url =& get_instance(); // get a reference to CodeIgniter
$current_url->router->fetch_class(); // for Class name or controller
$current_url->router->fetch_method(); // for method name
$this->router->fetch_class();
// fecth class la clase en el controlador $ this-> router-> fetch_method ();
// método