enário de roteamento de lítio personalizado
Fui encarregado de reescrever um site existente com um grande catálogo de links pré-existentes. Por uma questão de argumento, vamos supor que não possamos fazer nada que altere o catálogo de links. Aqui estão alguns exemplos da estrutura de links com a qual estamos trabalhando:
Uma página de item seria:
www.domain.com/widgets/some-totally-awesome-large-purple-widget
Uma página de subpágina da categoria seria:
www.domain.com/widgets/purple-widgets
Uma página da página principal da categoria seria:
www.domain.com/widgets/
Uma página personalizada pode ser:
www.domain.com/some-random-page
Os vários tipos de página são muitos para escrever roteadores individuai
Usando o Router :: connect Eu posso facilmente contabilizar o primeiro e o segundo cenários usando algo como:
Router::connect('/{:pageroot}/{:pagekey}', 'Pages::index');
Por sua vez, o método Pages :: index procura entradas em nosso banco de dados com a "chave" de '/widgets/purple-widgets'
No entanto, o padrão da estrutura é a rota '/ {: controller} / {: action} / {: args}' para páginas como a terceira e a quarta. Eu sei que esse é o comportamento correto para o framework. Além disso, as melhores práticas indicariam que eu deveria escrever o site para corresponder a esse comportamento. Mas isso não é uma opção aqu
O que eu preciso é de um roteador que permita que o terceiro e o quarto exemplos funcionem da mesma forma que o primeiro. Todos os exemplos devem ser enviados ao controlador Pages :: index, que por sua vez consulta um banco de dados usando o caminho da URL como chave.