cake在蛋糕PHP上找到只有URL的控制器文件的简单方法


cakeEasy way to find the controller file with only the URL on Cake PHP

作为 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);
}