1

我在 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

4

5 回答 5

1

如果你想从任何地方调用这个函数,比如在模型、控制器、视图、行为、组件和助手中,你可以把它放在你的 app/config/bootstrap.php 文件中。这就是它的用途。一旦它可以简单地作为 sqlToUnix() 全局使用;

于 2009-02-13T21:39:55.773 回答
0

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

$this->sqlToUnix($SQLDate);

很抱歉问这个问题,但我在发布此问题时只记得 appController ><

于 2009-02-12T06:47:56.113 回答
0

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

有没有一个地方我可以构建这样的功能,以便在任何控制器中的任何地方使用?

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

// call me this way, anywhere:
$result = MyHelpers::sqlToUnix($SQLDate);
于 2009-02-12T07:39:51.137 回答
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 时间戳?

于 2009-09-09T15:26:15.380 回答
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 的文件夹/类/助手/方法/组件结构即可。阅读有关组件或助手的手册部分,您将立即了解所有内容。

于 2009-10-21T19:29:54.320 回答