使用Phalcon模型,当使用find()
方法获取行时,如何获得不同的行。
发布于 2015-06-19 00:53:47
使用生成器的:
后面示例的基本实现:
$queryBuilder = $this->getDI()->getModelsManager()
->createBuilder()
->addFrom('tableName', 't');
不同的命令:
$queryBuilder->distinct('t.id');
列的东西也能用,但不推荐:
$queryBuilder->columns('DISTINCT(t.id) AS id')
严格使用模型:
// we are waiting for it, but may still not be implemented
TableModel::find(array('distinct' => 'id'))
数数:
TableModel::count(array("distinct" => "id"));
而根据先前的答案,推荐的方法则较少:
TableModel::find(array('columns' => 'distinct(id)'))
并链接到国际海事组织最佳文档。
此外,帕尔康2.0.2中也存在一些问题。
发布于 2015-06-13 06:48:34
如果已声明了某些列,则可以使用:
$result = Word::find(['columns'=>'distinct foo']);
发布于 2016-10-17 00:32:18
在phalcon 3.x中,使用Manager执行一个不同的操作,distinct方法以一个布尔值作为参数。因此,要在列上做一个不同的操作,您应该这样做:
$queryBuilder = $this->getDI()->getModelsManager()
->createBuilder()
->addFrom('tableName', 't')
->columns('t.myColumn')
->distinct(true)
->getQuery()
->execute();
https://stackoverflow.com/questions/30819894
复制