在CakePHP 2 find方法中执行两个字段之间的乘法

在CakePHP 2 find方法中执行两个字段之间的乘法,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,我想计算find操作中两个字段的乘积,并在返回的数据中包含答案。这两个字段属于两个相关模型 2种型号:A和B。A与A和B之间有归属关系 A有字段“val1”,B有字段“val2”。在查找操作之后,我希望两个值的乘积存储在'a.prod'中 我所尝试的: 这几乎是可行的,但将产品置于一个新阵列中,而不是: (int) 0 => array( (int) 0 => array( 'prod' => '6' ),

我想计算find操作中两个字段的乘积,并在返回的数据中包含答案。这两个字段属于两个相关模型

2种型号:A和B。A与A和B之间有归属关系

A有字段“val1”,B有字段“val2”。在查找操作之后,我希望两个值的乘积存储在'a.prod'中

我所尝试的:
这几乎是可行的,但将产品置于一个新阵列中,而不是:

(int) 0 => array(
        (int) 0 => array(
            'prod' => '6'
        ),
        'A' => array(
            'val1' => '3'
        )
        'B' => array(
            'val2' => '2'
        )
    ),

还尝试:

$this->A->find('all', array('fields' => array('val1', 'B.val2', '(val1*B.val2) AS A.prod'))
但这会产生一个MySQL错误


使用虚拟字段:

$this->A->virtualFields = array('prod' => 'A.val1*val2');
$this->B->virtualFields = array('val2' => 'B.val2');
$this->A->virtualFields += $this->B->virtualFields;
$this->A->find('all', array('fields' => array('prod', 'B.val2'))
这会出现错误“未找到列:1054“字段列表”中的未知列“val2”

这应该可以:

$this->A->virtualFields = array('prod' => 'A.val1 * B.val2');
$this->A->find('all', array('fields' => array('prod'));
$this->A->virtualFields = array('prod' => 'A.val1 * B.val2');
$this->A->find('all', array('fields' => array('prod'));