1

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

idここで使用して、自体で注文できるエレガントな Zend Framework 2 関数はありますか? SQL を効果的に作成する:

select * from table_name 
    where 'id' in (4, 2, 3, 1)
    order by field('id', (4, 2, 3, 1));
4

2 に答える 2

0

「エレガント」という言葉を関数に適用するときの意味がわかりませんが、それが次のようになっている場合:

$select->orderInExactlyThatOrder (array (4,2,3,1));

いいえ、そうは思いません。

于 2013-10-04T11:00:30.807 に答える