您将如何(优雅地)使用 Zend Framework 2 中的闭包按字段排序 select 语句?
我有以下 PHP 代码:
$gateway = new \Zend\Db\TableGateway\TableGateway('table_name', $adapter);
$select = $gateway->select(function($select){
$select->where->in('id', array(4, 2, 3, 1));
// insert some awesome ordering magic here..!
});
我知道你可以很容易地做到这一点:
...
$select->order(array('id ASC'));
...
但这只会按升序对结果进行id
排序,我需要按特定的 id 序列对它们进行排序(即:让它们按序列排序4, 2, 3, 1
。
我可以在这里使用优雅的 Zend Framework 2 函数来自己订购id
吗?有效地创建 SQL:
select * from table_name
where 'id' in (4, 2, 3, 1)
order by field('id', (4, 2, 3, 1));