使用模型内的query()方法从表中获取单个值

时间:2013-08-13 04:17:17

标签: php cakephp

我的表上有一个非常复杂的设置,通过任何find()方法实现这一点对我来说不是一个选项,因为我需要修复我的表之间的关系而我现在没有时间,所以我在这里寻找一个简单的解决方案。

我想要实现的是运行如下查询:

SELECT MAX( id ) as max FROM MyTable WHERE another_field_id = $another_field_id

然后,我需要将该单个id分配给变量以供以后使用。

我现在的方式它返回类似[{{max:16}}]的东西,我知道我可以在这个结果集上做一些PHP来获得我需要的单个值,但我是希望在CakePHP上已经有办法做到这一点。

2 个答案:

答案 0 :(得分:1)

假设您的桌子有一个模型而您正在使用CakePHP 2.x,请执行:

$result = $this->MyTable->field('id', array('1=1'), 'id DESC');

这将返回单个值。

请参阅Model::field()

答案 1 :(得分:0)

此示例直接来自CakePHP文档。您似乎可以使用模型的find方法获取count

$total = $this->Article->find('count');
    $pending = $this->Article->find('count', array(
        'conditions' => array('Article.status' => 'pending')
    ));
    $authors = $this->Article->User->find('count');
    $publishedAuthors = $this->Article->find('count', array(
       'fields' => 'DISTINCT Article.user_id',
       'conditions' => array('Article.status !=' => 'pending')
    ));