在Cakephp中编写函数时出错

时间:2014-09-04 05:31:57

标签: cakephp

我正在使用cakephp进行项目开发。我编写了一个函数来从数据库中获取数据并进行求和。我创建了一个名为user的表,其中包含高度和重量。我想检索那些数据,添加它们并返回它。这是我写的函数。

public function calculate()
{
    $Height=$this->set('user',$this->User->find('first'));
    $Weight=$this->set('user1',$this->User->find('first'));
    $sum=($Height+$Weight);
    $this->set('SUM',$sum);
}

在视图中,我编写了以下代码。

<div class="page-content">
<?php echo $user['User']['weight']; ?>
<?php echo $user1['User']['height']; ?>
<?php echo $SUM ?>
</div

显示高度和重量值。但总和值显示为零。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

首先你需要从find中获取该字段。 (例如,您可以使用查找条件来过滤de user id。

 $user = $this->User->find('first', array(
     'conditions' => array('User.id' => $id),
     'fields' => array('User.height', 'User.weight') // fields from your DB
));

因此,您可以执行pr($user)查看数据并了解其用途。

完成总和并设置为视图。 Cakephp Set

答案 1 :(得分:0)

我找到了一种更好的方法来进行上述计算。我在控制器中使用了以下代码。

public function calculate($id=null)
    {
        if (!$this->User->exists($id)) {
        throw new NotFoundException(__('Invalid user'));
        }
        $this->set('user1',$this->User->find('first', array('fields' => ('height'),'conditions' => array('User.id' =>$id))));
        $this->set('user',$this->User->find('first', array('fields' => ('weight'),'conditions' => array('User.id' =>$id))));
    }

我的观点与上面提到的类似。这对我很好......