【问题标题】:Two or more PathParts chained ( Catalyst )两个或更多 PathParts 链接(催化剂)
【发布时间】:2012-06-21 18:04:21
【问题描述】:

如何在一个动作中同时拥有多个路径部分?我尝试使用 Regex 和 LocalRegex,但它确实不起作用。

这是我想要的结果:

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

我想通过仅使用一个捕获两个参数的基本动作来实现这一点,并且可以具有“typeone”或“typetwo”路径部分。

“某事”只是链接到该基础的另一个动作。我不希望有两个具有两个不同路径部分的基地,这需要我有两个链接到每个基地的东西,对吧?

谢谢

【问题讨论】:

  • 好的,尝试了一下之后,链接或正则表达式都可以工作,但不能同时使用。我试过sub anchor :Chained :Regex('^type(one|two)$') :CaptureArgs(2) {} ... sub something :Chained('anchor') :Args(0) {}。也许是因为正则表达式消耗了所有三个部分而不是尊重CaptureArgs(2)
  • 这是因为“:Regex 匹配行为全局,即不参考调用它们的命名空间。” search.cpan.org/~zarquon/Catalyst-Manual-5.9004/lib/Catalyst/… :(

标签: perl catalyst chained


【解决方案1】:

据我所知,没有办法设置一个以上的 PathPart,或者有一个启用正则表达式的 PathPart。

【讨论】:

    【解决方案2】:

    如今,Catalyst 社区的普遍看法似乎是,链接总是比正则表达式匹配更好——以至于某些正则表达式的内容可能会在版本 6 中移出核心。

    这里的例子有帮助吗? http://wiki.catalystframework.org/wiki/gettingstarted/howtos/chainedexamples.view
    account/org/*/edit 似乎涉及匹配 3 个单独的 PathParts...

    每个相关的 subs——在你的情况下由 typeone 和 typetwo 触发的那些——都将运行。或者这不是你所追求的?

    【讨论】:

      猜你喜欢
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 2016-09-08
      • 2020-01-05
      • 2020-12-14
      • 2013-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多