0

作为 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/受保护/管理/组织/编辑/1

我只想查看在站点内调用 admin_edit.ctp 文件的位置。

4

2 回答 2

1

网址:http://foofoofoo.local/protected/admin/org/edit/1

这意味着我可以假设您在/app/Config/routes.php. 由于我们无权访问此文件,因此无法说出这指向的位置。

为什么我可以假设您已将其添加到您的路线中?因为发布的 URL 不符合CakePHP 约定,该约定明确指出控制器应该以复数形式定义。由于 URL 将直接通过 Controller 访问 Controller,除非指定了路由,否则我知道OrgController不存在。为什么?

试试Inflector::pluralize('Org')。它会将“组织”返回给您。因此意味着应该调用控制器OrgsController,并且您应该通过以下 URL 访问此控制器。

http://foofoofoo.local/protected/admin/orgs/edit/1

在此OrgsController应该有一个名为 的操作(函数)admin_edit(),因为您在orgAdmin 前面添加了前缀,它是一个前缀。

该部分也可能/protected是 URL 的一部分,但不知道您的 main/App位于何处以及 URL 的哪一部分指向/app/webroot/index.php文件。

可以在 中找到视图/app/View/Orgs/*.ctp

如果您仍然无法找到您的文件。请从Cake Community 编写的博客教程开始。本教程描述了所有巧妙的内置技巧,并将让您的第一个应用程序立即运行。请先阅读!

如果您仍然遇到问题,请随时更新您的问题并添加/app/Config/routes.php文件。

于 2013-01-29T08:28:56.687 回答
0

在 Cake 1.3 下,如果你的应用程序有一个 AppController(检查文件是否app/app_controller.php存在),你可以把这段代码放在beforeFilter方法中:

 debug($this->params);

当您处于调试模式时,它将在您的应用程序页面上打印一个数组,其中包含控制器的名称和使用的操作。

Array
(
  ...
  [controller] => controller_name
  [action] => action_name
  ...
)

如果 AppController 不包含任何beforeFilter方法,您可以创建它:

function beforeFilter()
{
    debug($this->params);
}
于 2013-01-29T08:58:14.320 回答