修复cakePHP中的'return'以从视图控制器函数返回Value

时间:2009-02-12 06:45:40

标签: php sql unix cakephp timestamp

我在model.php文件中的模型类内部的视图函数中有一个函数,看起来像这样

function sqlToUnix($date){
    $YMDThenHMS = explode(" ", $date);
    $YMD = explode("-", $YMDThenHMS[0]);
    $HMS = explode(":", $YMDThenHMS[1]);
    $UnixTime = mktime($HMS[0], $HMS[1], $HMS[2], $YMD[1], $YMD[2], $YMD[0]);

    return $UnixTime;
}

问题是,当它返回$ UnixTime时,返回值在模型控制器特定的视图函数中可用,但它不会呈现我的视图(停止脚本传播)

是否有可以在任何控制器中随处使用的地方构建这样的功能?

比如PHP本身内置的函数time(),我希望能够在任何地方使用sqlToUnix

5 个答案:

答案 0 :(得分:1)

如果要从任何地方(即模型,控制器,视图,行为,组件和帮助程序)调用此函数,可以将其放在app / config / bootstrap.php文件中。这就是它的用途。一旦它全局可用,就像sqlToUnix();

一样

答案 1 :(得分:0)

我能够通过在appController.php中存储该函数来解决问题,并在需要时调用该函数

$this->sqlToUnix($SQLDate);

很抱歉提出这个问题,但是当我发布这个><

时我才记得appController

答案 2 :(得分:0)

对于您的特定功能,您确定没有返回UnixTime格式的内置函数吗?

  

是否有可以在任何控制器中随处使用的地方构建这样的功能?

class MyHelpers
{
    public static function sqlToUnix($SQLDate)
    {
        // code
        return $result;
    }
}

// call me this way, anywhere:
$result = MyHelpers::sqlToUnix($SQLDate);

答案 3 :(得分:0)

你可以编写一个函数是bootstrap.php(尽管你最好还是从bootstrap.php包含另一个PHP文件)。

我通常在/ app / config目录下的文件中有任何额外的功能或配置,并将它包含在我的bootstrap.php文件中:

require_once(APP.'config'.DS.'my_file_of_whizzy_functions.php');

该功能将在整个CakePHP应用程序中可用。

除此之外,strtotime($ sqlDate);不将SQL时间转换为unix时间戳?

答案 4 :(得分:0)

您可以通过控制器访问此功能并将其传递到视图中:

//Controller

//inside a controller action
{
$TIMESTAMP = $this->Model->sql2unix($this->Model->getTimestamp());
$this->set('timestampe',$TIMESTAMP);
// or does this even do not work?
}

否则你可以创建一个组件

//inside the component // inside of a component method
{
$MODEL = loadModel('ModelName');
$return = $MODEL->sql2unix($MODEL->getTimestamp());

return $return;
}

放置代码几乎“不重要”,你只需要遵循cakephp的文件夹/ class / helper / method / component结构。 阅读有关组件或帮助程序的手册部分,您将立即了解所有内容。