CakePhp Router:connect,我没有语法
|
我正在尝试连接下一个网址:
1)
/food/tips
2)/happiness/tips/best_tips
要以下对象:
1)controller=tips
/action=index
/passed_parameters=food
2)controller=tips
/action=index
/passed_parameters=(happiness,best_tips)
- 编辑 -
这些路线不是固定的。
含义:我想做的是将每个带有tips
作为操作的URL路由到Tips控制器,任何固定的(索引就足够好了)操作,并将其余的url链接到原始调用中。
像是/any_controller/tips/any_param
到/tips/index/any_params
-结束编辑-
希望现在有某种意义。
应该怎么做?
(请-也请说明)
谢谢
没有找到相关结果
已邀请:
3 个回复
泻伴墓荒
或首选方法(使用内置于网址构建器中的蛋糕)
第一个方法采用一个字符串参数,并将其传递到另一个字符串,该字符串将是一个url,然后您必须在控制器中捕获它,并期望通过url传递参数。 第二种方法使用内置于URL前的蛋糕,该蛋糕采用具有键控制器和操作的数组(还有其他选项:http://api.cakephp.org/class/router#method-Routerurl) 第二种是首选,因为格式正确且将来具有灵活性(我认为)。 第二个方法中传递的任何参数都将作为未命名项传递到数组中。命名参数只是作为键元素传递。因此,如果我想创建一个这样的网址 / posts / index / find:all / page:2 我会这样写网址:
最后,我实际上将您的参数传递给了具名的:
这需要您的Tips控制器中的函数如下所示:
催备南菠亨
这应该使事情为您工作。实际上,您要做的就是告诉Cake Routing您想要捕获的URL,因为它将使用Regex进行此操作。然后,您要告诉它要运行哪个代码。因此,这需要将Controller和Action对作为一组操作。 您还希望随后通过您的命名参数。这些将添加到控制器中的功能上,以便您可以对其进行处理。
薄响
类中的
方法。这接受2个参数。首先是您想要的路由(例如
),其次是带有其实际路径的数组。因此,对于您的示例,您将执行以下操作:
这等效于分别调用
和
。 但是,您的路线看起来有些有趣。路由的Cake约定为
,其中参数param1等是可选的,并且在未指定其他任何动作时,假定为
动作。 您采用的是不同的方法,我建议(如果可以)将其更改为Cake的常规路线,因为这将在以后节省很多工作,因为Cake会自动将这些路线连接到所需的方法。 所以我的建议是选择25英镑和26英镑,而不是您建议的路线。这样,您不必进行任何路由器配置。 更新 编辑后,我认为最好尝试定义自定义路线。我目前无法为您进行测试,因此您应该自己进行测试,但是在这种情况下,它将是这样的:
更新2 抱歉,我已经测试了上面的内容,但似乎没有用。