2012-06-19 14 views
7

Jak mogę mieć więcej niż jeden pathpart w akcji w tym samym czasie? Próbowałem z Regex i LocalRegex, ale to naprawdę nie działa.Co najmniej dwa PathParts powiązane (Catalyst)

Jest to wynik chcę:

/typeone/*/*/something 
/typetwo/*/*/something 

chcę osiągnąć to za pomocą tylko jednego działania bazowy, który rejestruje dwa argumenty z, i może mieć albo „typeone” lub „typetwo” pathpart .

"Coś" to kolejna akcja, która jest przykuta do tej bazy. Nie chcę mieć dwóch baz z dwiema różnymi ścieżkami, które wymagałyby ode mnie dwóch rzeczy przykutych do każdej z baz, prawda?

Dziękuję

+0

Ok, po spróbowaniu trochę, albo łączenia lub regex pracy, ale nie obu w połączeniu. Próbowałem 'sub anchor: Chained: Regex ('^ type (one | two) $'): CaptureArgs (2) {} ... sub coś: Chained ('anchor'): Args (0) {}'. Może dlatego, że Regex zużywa wszystkie trzy części zamiast honorować 'CaptureArgs (2)'. – dgw

+1

Dzieje się tak, ponieważ ": dopasowania Regex działają globalnie, tj. Bez odniesienia do przestrzeni nazw, z której są wywoływane." http://search.cpan.org/~zarquon/Catalyst-Manual-5.9004/lib/Catalyst/Manual/Intro.pod :( – LuRsT

Odpowiedz

-1

O ile mi wiadomo, nie ma sposobu, aby ustawić więcej niż jeden PathPart lub mieć włączoną PathPart regexp.

1

Wspólne mądrość we wspólnocie Catalyst wydaje się, że łańcuchowym jest zawsze lepszy pomysł niż regex dopasowywania te dni - do tego stopnia, że ​​niektóre z regex rzeczy może się wyprowadziła się z rdzeniem w wersji 6.

Czy przykłady tutaj pomagają? http://wiki.catalystframework.org/wiki/gettingstarted/howtos/chainedexamples.view
Ten account/org/*/edit wydaje się wiązać dopasowując 3 oddzielne PathParts ...

Każdy z odpowiednimi Subs - te wywołane przez typeone i typetwo, w Twoim przypadku - zostaną uruchomione. Czy nie tego właśnie szukasz?

Powiązane problemy