控制器的函数名称和视图文件(.ctp)名称在cake php中应该相同吗?

时间:2013-09-25 09:00:53

标签: cakephp

如果我使用它,它正在工作。但如果我重命名功能名称,它会显示 错误

在视图文件中:

echo $this->Html->link( '<span>Page 1</span>', array('action' => 'ra'), array('escape' => false));

在控制器中:

public function ra()
    {
    $this->render('ra');    
    }

2 个答案:

答案 0 :(得分:1)

按照惯例,视图文件必须与方法(操作)名称相同。

如果要更改网址的外观,则应使用routes,而不是重命名方法/视图。

如果您希望为给定操作呈现不同的.ctp文件,则可以覆盖默认行为,如下所示:

public function ra() {
    $this->render('my_other_view'); 
}

URL中指定的action必须始终存在以避免错误(但路由允许您为操作使用替代“名称”并将它们映射到适当的控制器方法)。

答案 1 :(得分:0)

视图模板文件以它们显示的控制器功能命名,以下划线形式。 PeopleController类的getReady()函数将在/app/views/people/get_ready.ctp.

中查找视图模板

基本模式为/app/views/controller/underscored_function_name.ctp.

通过使用CakePHP约定命名应用程序的各个部分,您可以获得功能而无需配置的麻烦和维护。这是一个关联约定的最后一个例子

数据库表:“人” 型号类:“人物”,在/app/models/person.php找到 控制器类:“PeopleController”,位于

/app/controllers/people_controller.php
View template, found at /app/views/people/index.ctp

阅读: View Conventions

另请阅读: CakePHP Conventions