Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Augusto

[Resolvido] URL's Amigáveis com Roteamento de URL...

Recommended Posts

Bom, nem sempre dá para prever todos os casos de uma só vez.

 

As minhas URL's Amigáveis são feitas por Roteamento, isto é, a requisição é passada ao Router o qual quebra, mexe, inverte, estica e puxa ( :lol: ) e detecta quem são os componentes "dinâmicos", isto é, os equivalentes aos parâmetros GET.

 

Pois bem, inicialmente eu desenvolvi a detecção sob o modelo chave/valor, tal qual um parâmetro GET normal.

 

Porém hoje, testando a fundo as classes de DB, montei uma rota diferente para adicionar uma cláusula WHERE dinâmica, simulando um formulário de busca.

 

Acontece que o condicional da cláusula WHERE também tem um par de dados no estilo chave=valor.

 

Colocando na Rota, ficaria /chave/chave/valor, sendo a primeira chave o nome do parâmetro (no caso, where) e o segundo chave/valor, aquilo que, de fato, fará parte da query.

 

Mas, como eu disse, isso não foi previsto lá atrás (o Router é um dos módulos mais antigos) e, nos moldes criados essa rota teria os parâmetros interpretados como chave=chave e valor=NULL visto que este último não possui um par completo.

 

Uma consideração: A parte do roteador que manipula os parâmetros dinâmicos, o faz via RegExp, então, qualquer dica nesse sentido seria ainda mais apreciada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode postar como está a estrutura do seu Router?

 

você tem um Router que contém outros Routers (RouterChain), ou apenas um Router?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um Router só, mas a estrutura é extensível para que hajam tantos Router quantos eu queira/precise e ainda permite que cada Aplicação use um Router diferente.

 

Mas eu resolvi o "problema". Adivinha de quem era a culpa?

 

Do preg_match() glutão que, por exemplo, numa Rota com os parâmetros name (para usar no WHERE), order e sort (asc/desc), e o valor desejado para order também fosse name, haveriam os casamentos order/name corretamente, mas haveria um name/sort indevido e o sort, que é real, seria descartado pois não teria um valor para completar o par.

 

Já é o segundo problema que tenha com essa função. <_<

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.