Cakephp 从Cake生成的下拉表单生成Cake样式URL的最佳实践

Cakephp 从Cake生成的下拉表单生成Cake样式URL的最佳实践,cakephp,html-select,Cakephp,Html Select,这似乎没有它应有的那么明显。我有一个简单的CakePhp选择表单,带有一个下拉列表,其选项由Cake的“列表”式查找操作生成。默认情况下,表单通过post发送数据,因此我将类型设置为“get”,因为我希望URL显示并适合书签等 因此,它的默认格式是一个查询字符串,例如,sitename/controller/action?id=3 与Cake样式相反:sitename/controller/action/3——我希望Cake将其用作默认样式,但我相信他们选择Cake是有充分理由的 我想要第二个,

这似乎没有它应有的那么明显。我有一个简单的CakePhp选择表单,带有一个下拉列表,其选项由Cake的“列表”式查找操作生成。默认情况下,表单通过post发送数据,因此我将类型设置为“get”,因为我希望URL显示并适合书签等

因此,它的默认格式是一个查询字符串,例如,sitename/controller/action?id=3

与Cake样式相反:sitename/controller/action/3——我希望Cake将其用作默认样式,但我相信他们选择Cake是有充分理由的

我想要第二个,蛋糕式的URL,所以我加入了一个beforeFilter,它查找查询字符串并使用它来构建我喜欢的URL,然后重定向到它

这很好,但我无法摆脱这种模糊的感觉,我正在用愚蠢的方式做这件事。是否有一种更为内在的行为是我设法没有发现的


谢谢你的建议。哦:我仍然在使用CakePhp 2.x。

您正在尝试将幂等项列表(顺序不相关)形成一个有序列表。这本身就有问题。您很可能需要以理智的方式手动解决这些问题,确保在可选参数前也包含required。尽管我不知道您的评论是什么意思,但我所要做的只是创建一个选择/下拉列表,当您选择某个项目时,将您转到sitename/controller/action/integer格式的URL。我可以很容易地手工编写代码,但是我使用的是CakePhp(2.x),我希望用蛋糕的方式来编写。CakePhp表单的默认“get”行为使用查询字符串,而不是我要查找的斜杠分隔的URL。如果我看不到有序列表或令人兴奋的单词“幂等元”的相关性,请原谅。哦,那么您只关心查询字符串元素的计数===1。这肯定会让事情变得更容易。但这里可以使用PRG模式并在post案例中重新格式化目标URL。或者在下拉列表中选择后,使用自定义JS重定向到您选择的URL。如果没有太多这样的操作需要处理,为什么不构建该操作以便它可以在任意位置找到参数?