【问题标题】:CakePHP: view containing underscore in filename not workingCakePHP:文件名中包含下划线的视图不起作用
【发布时间】:2013-05-15 04:35:01
【问题描述】:

尝试使用Cakephp Naming Conventions 命名我的视图文件。

这是我的控制器(/app/Controller/CallbacksController.php):

<?php
App::uses('AppController', 'Controller');

class CallbacksController extends AppController {

    public function googlePlus() {

    }
}

?>

我已将我的视图命名为 /app/View/Callbacks/google_plus.ctp。

当我尝试使用http://mycakephpapp.dev/callbacks/google_plus.ctp 转到该视图时,会出现以下错误:

CallbacksController 中缺少方法

错误:控制器中未定义操作 google_plus 回调控制器

错误:在文件中创建 CallbacksController::google_plus(): app\Controller\CallbacksController.php.

如果我将视图重命名为 googleplus.ctp,它就可以正常工作。

谁能解释一下为什么这个特定的命名约定不起作用?

【问题讨论】:

  • 您打开的 url 引用了一个名为 google_plus 的方法如果您将 url 更改为 http://mycakephpapp.dev/callbacks/googlePlus 一切都应该按预期工作。如果您想以自己的方式使用它,我认为您应该使用 Router 类创建一些路由。
  • 按照惯例应该是public function google_plus() {}。然后您的视图文件也将正确命名 (google_plus.ctp)。

标签: cakephp cakephp-2.0


【解决方案1】:

根据 Cake 标准,视图和函数都应该命名为 google_plus。

【讨论】:

  • 直接引用 CakePHP 的命名约定:“视图模板文件以它们显示的控制器函数命名,下划线形式。PeopleController 类的 getReady() 函数将在 / 中查找视图模板app/View/People/get_ready.ctp。基本模式是/app/View/Controller/underscored_function_name.ctp。”我只是读错了吗??
  • 他们的说法令人困惑。但是保持动作名称和视图名称相同绝对有效。
猜你喜欢
  • 2014-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
相关资源
最近更新 更多