我认为您的路由器声明没有任何问题。虽然我不确定你是否真的想要/:class/:id而不是“ /class/:id ”。看到不同?第 2 版中缺少冒号。
这告诉路由器任何以 /class/[an-id] 开头的请求都应该映射到您的规则。将其设置为 /:class 意味着您将参数传递给路由器。它可以是任何东西/foo/15或/bar/15并且这些参数将在您的$this->params['class']和$this->params['id']中可用。假设这条规则 -> / :班级号
在您的问题中,您说“我真的不知道为什么它不起作用”。请避免此类陈述,因为它没有说明实际问题。
而是告诉我们您期待什么?而你看到了什么?这是一个错误吗?还是警告?如果您完全看到其他内容,例如执行了不同的操作,则可能是由于路由器实际工作的事实。如果您有一条贪婪路线和一条正常路线,如下所示:
/users/* 和 /users/:id
任何请求都不会匹配第二个 url,因为 /users/* 是贪婪的,并且会将所有请求都给自己,除非第一个路由规则返回 false。
如果这是您的情况,我建议您阅读如何编写自定义路由类。总之,自定义路由类试图使贪婪的路由不那么贪婪。为了获得更好的解释,这里是 mark story 的一篇优秀文章:http: //mark-story.com/posts/view/using-custom-route-classes-in-cakephp
cakephp 中的路由是最令人困惑的主题之一,可能需要一段时间才能理解它。食谱是你最好的朋友。阅读并重新阅读所有内容,直到您确定每个路由元素在路由规则中的作用。