我在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
答案 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结构。 阅读有关组件或帮助程序的手册部分,您将立即了解所有内容。