在ORM中订购和分组(fuelphp)

时间:2017-03-26 05:28:26

标签: fuelphp fuelphp-orm

我正在尝试按标签排序

  

$ result =   Model_Tag ::查询() - >选择(\燃油\核心\ DB :: expr的( 'COUNT(*)'), '计数') - >选择( '标记') - > GROUP_BY( '标签' ) - > ORDER_BY( '计数', '降序') - >得到();

     

$ result =   Model_Tag ::查询() - >选择(\燃油\核心\ DB :: expr的( 'COUNT(*)', '计数')) - >选择( '标记') - > GROUP_BY( '标签' ) - > ORDER_BY( '计数', '降序') - >得到();

但是,无论我做什么,我都会得到错误,即未将计数定义为ORM坚持对字段名称进行别名处理:

  

SELECT count(*)AS t0_c0t0tag AS t0_c1t0id AS   t0_c2来自tag AS t0 GROUP BY t0tag ORDER BY t0count   DESC“

导致找不到列错误

或者:

  

$ query = Model_Tag :: query() - >选择(\ Fuel \ Core \ Db :: expr('count(*)as   计数 ')) - >选择(' 标签 ') - > GROUP_BY(' 标签 ') - > ORDER_BY(' 计数”, '降序') - >得到();

查询

  

SELECT count(*)as count AS t0_c0t0tag AS t0_c1t0id   AS t0_c2 FROM tag AS t0 GROUP BY t0tag ORDER BY   t0count DESC

给出语法错误

1 个答案:

答案 0 :(得分:0)

在FuelPHP版本1.8中,访问您的控制器并查询设置此示例:

$result = Model_Tag::query()->group_by('tag')->order_by('count','desc')->get();

如果你得到了计数

$count = count($result);

警告!请勿致电select('tag'),因为您已使用Model_Tag

参考:https://fuelphp.com/docs/classes/database/usage.html