只使用Cake PHP上的URL查找控制器文件的简便方法

时间:2013-01-29 05:48:37

标签: php cakephp

作为PHP的新手,我想尝试一下如果我有一个URL,最简单的方法是找到它的控制器代码?

我本地计算机上的URL类似于: 的 http://foofoofoo.local/protected/admin/org/edit/1

我已经知道这个文件的视图位置在我的机器上的这个位置: 的 /var/www/MyApp/protected/app/views/org/admin_edit.ctp

我认为我要做的是在整个代码库中搜索引用admin_edit.ctp的任何内容。我找到了两个条目,并更改了它们以查看我是否找到了调用该视图的位置,但是尽管更改了这些条目的文件名 - 当我访问该网址时该应用仍然有效: http://foofoofoo.local/protected/admin/org/edit/1

我只是想看看在网站中调用admin_edit.ctp文件的位置。

2 个答案:

答案 0 :(得分:1)

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

这意味着我可以假设您在/app/Config/routes.php中添加了一条路线。由于我们无权访问此文件,因此无法说明这一点。

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

试试Inflector::pluralize('Org')。它会将'Orgs'返回给你。因此意味着控制器应该被称为OrgsController,您应该通过以下URL访问该控制器。

  

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

在此OrgsController中,应该有一个名为admin_edit()的操作(功能),因为您已在org前加上管理员,这是一个前缀。

/protected部分也可能是网址的一部分,但不知道主/App的位置以及网址的哪一部分指向{{ 1}}文件。

可以在/app/webroot/index.php找到视图。

如果您仍然无法找到文件。请从Cake Community编写的Blog tutorial开始。本教程描述了所有简洁的内置技巧,并将使您的第一个应用程序在任何时间运行。请先阅读!

如果您仍然遇到问题,请随时更新您的问题并添加/app/View/Orgs/*.ctp文件。

答案 1 :(得分: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);
}