Eu tenho estes URLs:
Como obter o nome do controlador, o nome da ação desses URLs. Sou novato no CodeIgniter. Existe alguma função auxiliar para obter essas informações
Ex:
$params = helper_function( current_url() )
Onde $params
se torna algo como
array (
'controller' => 'system/settings',
'action' => 'edit',
'...'=>'...'
)
php
codeigniter
codeigniter-2
noname.cs
fonte
fonte
Em vez de usar segmentos de URI, você deve fazer o seguinte:
Dessa forma, você sabe que está sempre usando os valores corretos, mesmo que esteja atrás de um URL roteado, de um subdomínio etc.
fonte
modules::run('module/controller/action')
. Apenas mostra as informações do roteador da página carregada. Existe alguma maneira de superar isso?$this->router
retornará a classe na qual o código é executado, mas não o roteador real mascarado com a substituição. Ambas as respostas são bastante úteis com base no que você deseja fazer.$this->router->class
e, em$this->router->method
vez disso,Os métodos estão obsoletos.
Você pode acessar as propriedades.
Consulte o manual do usuário do codeigniter
fonte
Outra maneira
fonte
Como complemento
fonte
fetch_module()
chamada não funciona para mim no IC 2.1.2. Não foi possível encontrá-lo no arquivo /system/router.php.Atualizar
A resposta foi adicionada em 2015 e os seguintes métodos estão obsoletos agora
Oi, você deve usar a seguinte abordagem
para esse fim, mas para usá-lo, você precisa estender seu gancho
CI_Controller
e funciona como um encanto, não use segmentos de urifonte
Se você usar $ this-> uri-> segment, se as regras de reescrita de URLs mudarem, a correspondência de nome dos segmentos será perdida.
fonte
Use este código em qualquer lugar da classe ou das bibliotecas
fonte
O último segmento do URL sempre será a ação. Por favor, fique assim:
fonte
// classe fecth a classe no controlador $ this-> router-> fetch_method ();
// método
fonte
classe de controlador não está funcionando nenhuma função.
então eu recomendo que você use os seguintes scripts
fonte