2012-06-19 30 views
7

Làm cách nào để có thể có nhiều hơn một hành vi trong cùng một hành động? Tôi đã thử với Regex và LocalRegex nhưng nó thực sự không hoạt động.Hai hoặc nhiều PathParts bị xích (Catalyst)

Đây là kết quả tôi muốn:

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

Tôi muốn đạt được điều này bằng cách sử dụng chỉ có một hành động căn cứ để chụp hai args từ, và có thể có một trong hai "typeone" hoặc "typetwo" pathpart .

"Cái gì đó" chỉ là một hành động khác được xích vào cơ sở đó. Tôi không muốn có hai căn cứ với hai lối đi khác nhau, điều đó đòi hỏi tôi phải có hai thứ được xích vào mỗi căn cứ, đúng không?

Cảm ơn bạn

+0

Ok, sau khi thử một chút, hoặc là chuỗi hoặc công việc regex nhưng không kết hợp cả hai. Tôi đã thử 'sub neo: Chained: Regex ('^ type (one | two) $'): CaptureArgs (2) {} ... sub cái gì đó: Chained ('anchor'): Args (0) {}'. Có lẽ vì Regex đang tiêu thụ cả ba phần thay vì tôn vinh 'CaptureArgs (2)'. – dgw

+1

Đó là vì ": Regex khớp với hành động trên toàn cầu, nghĩa là không tham chiếu đến không gian tên mà từ đó chúng được gọi." http://search.cpan.org/~zarquon/Catalyst-Manual-5.9004/lib/Catalyst/Manual/Intro.pod :( – LuRsT

Trả lời

-1

Theo như tôi biết, không có cách nào để thiết lập nhiều hơn thì một PathPart, hoặc để có một PathPart regexp-enabled.

1

Sự khôn ngoan phổ biến trong cộng đồng Catalyst dường như là một ý tưởng tốt hơn so với kết hợp regex, những ngày này - đến mức một số công cụ regex có thể bị loại bỏ khỏi lõi trong phiên bản 6.

Các ví dụ tại đây có trợ giúp không? http://wiki.catalystframework.org/wiki/gettingstarted/howtos/chainedexamples.view
Các account/org/*/edit ai có vẻ liên quan đến phù hợp với 3 PathParts riêng ...

Mỗi phòng trong số tàu ngầm có liên quan - những người kích hoạt bởi typeone và typetwo, trong trường hợp của bạn - sẽ được chạy. Hay đó không phải là những gì bạn đang theo đuổi?

Các vấn đề liên quan