作为 PHP 上 Cake 的新手,我正在尝试弄清楚我是否有一个 URL,找到它的控制器代码的最简单方法是什么?
我的本地计算机上的 URL 如下所示:http://foofoofoo.local/protected/admin/org/edit/1
我已经计算出此文件的视图位置位于我计算机上的此位置:/var/www/MyApp/protected/app/views/org/admin_edit.ctp
我想我要做的是在整个代码库中搜索任何引用admin_edit.ctp的内容。我找到了两个条目,并更改了它们以查看我是否找到了调用视图的点,但是尽管更改了这些条目上的文件名 - 当我访问 URL 时,该应用程序仍然有效:http://foofoofoo.local/protected/admin/org/edit/1
我只是想看看 admin_edit.ctp 文件在站点内的调用位置。
:http://foofoofoo.local/protected/admin/org/edit/1
这意味着我可以假设您在/app/Config/routes.php
中添加了一条路线。这指向哪里不能说,因为我们无法访问此文件。
为什么我可以假设您已将其添加到您的路线中?因为发布的 URL 与 CakePHP 约定不匹配,该约定明确指出控制器应以复数形式定义。由于 URL 将直接通过控制器访问控制器,除非指定了路由,否则我知道OrgController
不存在。为什么?
试试Inflector::pluralize('Org')
。它会将"组织"返回给您。因此,这意味着控制器应该被称为OrgsController
,你应该通过以下URL访问这个控制器。
http://foofoofoo.local/protected/admin/orgs/edit/1
在此OrgsController
中,应该有一个名为 admin_edit()
的操作(函数),因为您已在org
前面加上了 Admin,这是一个前缀。
/protected
部分也可能是 URL 的一部分,但不知道您的主/App
位于何处以及 URL 的哪个部分指向/app/webroot/index.php
文件。
视图可以在/app/View/Orgs/*.ctp
中找到。
如果您仍然无法找到文件。请从蛋糕社区编写的博客教程开始。本教程介绍了所有简洁的内置技巧,并将立即运行您的第一个应用程序。请先阅读!
如果您仍然遇到问题,请随时更新您的问题并添加/app/Config/routes.php
文件。
在 Cake 1.3 下,如果你的应用程序有一个 AppController (检查文件是否存在app/app_controller.php
),你可以把这段代码放在 beforeFilter
方法中:
debug($this->params);
当您处于调试模式时,它将在应用程序页面上打印一个数组,其中包含控制器的名称和所使用的操作。
Array
(
...
[controller] => controller_name
[action] => action_name
...
)
如果应用控制器不包含任何beforeFilter
方法,您可以创建它:
function beforeFilter()
{
debug($this->params);
}