2013-03-19 3 views
0

В настоящее время я использую AltoRouter в своем проекте, и мне нужен маршрут, который может соответствовать различным необязательным параметрам с случайным порядком. Я переписан класс AltoRouter использовать XML + Добавлена ​​возможность для повторного использования параметров, как:Определение нескольких необязательных параметров по маршруту

<parameter name="page" match="[i:page]"/> 

<route match="/blog" ...> 
    <use param="page"/> 
</route> 

Это будет соответствовать как /blog и /blog/2.

Теперь мне нужен маршрут как /blog/[i:page]/[desc|asc:order]/[new|popular:sort] , который может соответствовать идентификаторы URI, как /blog/2/new или /blog/desc/2, или просто /blog/2 , /blog/new.

Возможно ли определить один маршрут для таких URI (даже с использованием другого маршрутизатора, такого как Symfony)? Если нет, как следует установить несколько правил для соответствия этим URI?

ответ

1

Нашли решение: все необходимые параметры должны быть переданы действию контроллера. Такой маршрут можно определить с помощью AltoRouter следующим образом: /blog/[**:params]. Этот маршрут будет соответствовать/blog /, а остальная часть URL-адреса - $ params. Например. URL-адрес/blog/2/desc/new, действие контроллера получит «2/desc/new» в качестве $ params, которые могут быть проанализированы с помощью explode ('/', $ params) и обработаны по мере необходимости

Смежные вопросы