Named params no Code Igniter
Named params são parâmetros enviados numa url, mas sem ordem definida. Na prática são o velho ?var=valor&var2=valor2, mas de um modo mais limpo.
www.seusite.com/controller/método/nome:Felipe/cidade:Teutônia/
Eu venho utilizando CodeIgniter há algum tempo e ele não permite passar variáveis como o PHP normalmente faz e acabei criando algo assim para utilizar. E quando li o artigo do Tulio Faria falando sobre named params, mas no CakePHP, a primeira coisa que pensei é que deveria disponibilizar minha função aqui no blog.
Na verdade é uma estensão da biblioteca URI:
Para chamar essa função faça da seguinte maneira:
-
$this->uri->named_param('nome'); // Na url de exemplo acima retornaria Felipe
-
$this->uri->named_param('cidade'); // Na url de exemplo acima retornaria Teutônia
Update:
Conversando o Guilherme Medeiros, chegamos a uma solução diferente da de cima. Nesta versão não se chama uma função que retornará o valor, mas sim os valores já estão na variável named, ficando a classe assim:
Sendo usado assim:
-
$this->uri->named->nome; // Na url de exemplo acima retornaria Felipe
-
$this->uri->named->cidade; // Na url de exemplo acima retornaria Teutônia
Vale lembrar que o valor deve ser testado com o isset(), pois pode não existir.
Olá Felipe, parabéns pelo artigo e muito obrigado por compartilhar conhecimentos.
Passei alguns dias quebrando a cabeça para passar variáveis pela url mas nada saia, até que encontrei esta solução que você gentilmente postou aki.
Vlw cara, compartilhe sempre!
Deus te abençoe!
Legal essa feature. Acho que vou até implementá-la no NiceDog (http://tiago.zusee.com/code/nicedog)
Interessante seu nano framework. Quando der um tempo vou dar uma olhada!