CakePHP时间助手问题

CakePHP时间助手问题,cakephp,Cakephp,我想我可能犯了一个错误。 当我试图在控制器的时间助手中使用一个简单函数时,出现以下错误。在视图中使用相同的函数调用时,我没有收到错误 下面是来自控制器的错误。 后跟失败的控制器代码。 后跟正在工作的视图代码 感谢您的帮助 错误: 注意(8):未定义变量:time[APP/controllers/temp\u users\u controller.php,第25行] 代码$checkTime=$time->gmt(); 致命错误:对第25行/var/www/studydeck/app/contro

我想我可能犯了一个错误。 当我试图在控制器的时间助手中使用一个简单函数时,出现以下错误。在视图中使用相同的函数调用时,我没有收到错误

下面是来自控制器的错误。 后跟失败的控制器代码。 后跟正在工作的视图代码

感谢您的帮助

错误:

注意(8):未定义变量:time[APP/controllers/temp\u users\u controller.php,第25行] 代码$checkTime=$time->gmt(); 致命错误:对第25行/var/www/studydeck/app/controllers/temp_users_controller.php中的非对象调用成员函数gmt()

控制器:

类TempUsersController扩展了AppController{

var $name = 'TempUsers';
var $scaffold;
var $components = array('Auth');
var $helpers = array('Time');

function beforeFilter() {
    //list of actions that do not need authentication
    $this->Auth->allow('userCleanUp');

}

//this function will delete TempUser accounts which have not been activated
function userCleanUp() {

    $checkTime = $time->gmt();
    $this->set('checkTime',$checkTime);
}
}

查看:

echo$time->gmt()

更新: 我尝试了$time=newtimehelper(); 我收到了错误 致命错误:在第23行的/var/www/studydeck/app/controllers/temp\u users\u controller.php中找不到类“TimeHelper”

我确实有var$helpers=array('时间')

也不是echo$time->gmt();在视图中工作,无需在任何位置实例化时间。

在这一行:

 $checkTime = $time->gmt();

$time变量未定义,自动设置为null。错误表明它不是一个对象(这是正确的)。你正确初始化了吗?我看不到对$time变量进行任何初始化。

帮助程序被认为是在视图中使用的,而不是在控制器中,因此出现错误。如果确实必须在控制器中使用帮助器,则必须自己实例化它:

$time = new TimeHelper();

您通常不使用来自控制器的帮助器。 在分析和呈现视图之前,在控制器中指定的数组用于加载和实例化帮助器类

要在控制器中使用帮助器,您需要确保文件已正确加载(包括),并且您有一个要使用的实例。您还可以从控制器中静态使用其中的许多对象,特别是那些不需要访问控制器对象的帮助程序

Cake为您提供了一个核心函数,您可以使用它安全地包含文件。它甚至可以自动处理文件从何处加载,因此您不需要处理路径

一个让你开始的例子

<?php
    class TempUsersController extends AppController
    {
        public $name = "TempUsers";

        public function userCleanUp( ){
            // include the time helper
            App::import( 'Helper', 'Time' );
            $time = new TimeHelper;
            $checkTime = $time->gmt( );
            $this->set( 'checkTime',$checkTime );
        }
    }
?>