如何在CakePHP中获取控制器名称列表以验证用户数据?

ink*_*dmn 3 php cakephp

我正在为客户建立一个CakePHP网站,我有一个有趣的问题.他们希望添加一项新功能,用户可以使用此类网址在网站内创建自己的目标网页:http://mainsite.com/username.由于这是一个Cake站点,因此有很多值username会导致各种路由疯狂,特别是如果他们碰巧选择了与站点内的控制器相同的用户名.

我的方法是这样的:在beforeValidateUsers控制器的功能中,根据所有控制器名称列表检查提供的用户名,false如果匹配则返回.我的问题是 - 如何获得所有控制器名称的列表(实际上没有实际循环文件/app/controllers)?甚至可以这样做吗?

谢谢!

dr *_*ter 6

你可以使用CakePHP 1.x.

$Controllers = Configure::listObjects('controller')
Run Code Online (Sandbox Code Playgroud)

CakePHP 2.x

$Controllers = App::objects('controller');
Run Code Online (Sandbox Code Playgroud)

  • 未来访问者的更新:如果您使用的是CakePHP 2.x,则可以将该列表检索为`$ Controllers = App :: objects('controller');`. (2认同)