CakePHP中的自定义控制器名称

joh*_*ohn 0 php cakephp cakephp-1.3

我正在开发cakephp中的应用程序,我必须为网站中的每个用户提供一个用户页面,例如www.example.com/username,用户名将为每个用户更改,当访问者访问此URL时,他会获得用户的详细信息使用该特定用户名,但在蛋糕用户名中尝试获取具有该名称的控制器,我该怎么做?

sso*_*low 5

我的第一反应是说"不要那样做".如果您决定在将来的某个时间点添加促销页面会发生什么,但您已经有一个名为"促销"的用户,或者您想添加一个论坛系统,但您已经拥有了名为"非常好的用户"论坛"和"董事会"?

最好做一些像www.example.com/users/username这样的事情.(例如www.example.com/users/ssokolow)这就是所有理智的网站都是这样做的.实际上,在相关的说明中,Mozilla刚刚重新设计了插件集合系统,以便集合名称在用户名下命名,以解决类似的问题.

无论如何,无论你决定什么,自定义URL映射的指令都独立于你的控制器设计,参见CakePHP 1.3手册的第3.4.5节:路由配置.

您需要设置优先顺序,以便CakePHP首先尝试其他所有内容(如登录页面和接受用户数据的表单的提交处理程序),然后在放弃并返回404之前尝试将您的用户名映射作为最后一件事. .

你仍然需要手动维护一个被禁止的用户名列表,因为他们的个人资料网址会被网站全局内容覆盖(例如登录),你仍然需要注意恶意用户可能能够做到的情况利用来欺骗其他用户,但它会起作用.