在此先感谢,我是cakephp的新手,我正在使用cakephp2.8.5版本。实际上我想编写一个php代码来计算mysql数据库表中的记录数,将有序日期列日期值与当前日期进行比较。我编写了代码,但我的菜单在default.ctp页面。在订单检查菜单中,我必须以数字显示计数。 default.ctp页面位于app / view / Layout / default.ctp中,所以如何在不使用控制器的情况下在php代码中创建计数值。
我的代码会将当前日期与表列日期进行比较并计算count.How如何将变量$ ordCounts传递给default.ctp页面而不创建控制器页面 具体如下:
<?php
$a = 0;
for($j=0; $j<count($ordCounts) ;$j++)
{
$orderDate = $ordCounts[$j]['carts']['order_date'];
$currentDate = $dateTime;
$diff = strtotime($currentDate) - strtotime($orderDate);
$hour = $diff/(60*60);
if($hour>24)
{
$a++;
}
}
echo $a;
?>
答案 0 :(得分:2)
在beforeRender()
AppController
方法
public function beforeRender(){
parent::beforeRender();
//here your code
$this->set('a',$a);
}
$a
变量将在模板中提供
答案 1 :(得分:0)
你可以创建一个上述代码的函数来计算AppController中出现的这个
function countOccurences(){
$a = 0;
for($j=0; $j<count($ordCounts) ;$j++)
{
$orderDate = $ordCounts[$j]['carts']['order_date'];
$currentDate = $dateTime;
$diff = strtotime($currentDate) - strtotime($orderDate);
$hour = $diff/(60*60);
if($hour>24)
{
$a++;
}
}
return $a;
}
然后在AppController中的beforeFilterMethod中调用此函数
function beforeFilter(){
parent::beforeFilter();
$count = $this->countOccurences();
$this->set('count',$count);
}