按CakePHP中的特定字段值排序

时间:2014-01-28 18:01:32

标签: php mysql cakephp

我有数组$ productsTop

(int) 0 => '6
(int) 1 => '4',
(int) 2 => '1',
(int) 3 => '2',
(int) 4 => '3',
(int) 5 => '5'

其中6 4 1 2 3 5是产品表的id。 我想只显示我的产品表中的5个产品,但不是通过ID ASC或DSC订购, 我想通过ID订购它们,就像它们在arrar中订购一样,因此它可以首先显示产品ID 6,然后ID 4 ...到ID 5。

请有人帮忙吗。

$productTop = [6,4,1,2,3,5];

$product = $this->Product->find('all', array(
    'conditions'=>array('Product.id'=>$productTop),
    'limit'=>5
    ));

通过这种方式,它向我展示了所有产品,但是按照他们的ID排序,而不是向我展示:

6,4,1,2,3,5

它显示:

1,2,3,4,5,6

2 个答案:

答案 0 :(得分:3)

您可以按照以下指定值进行排序:

'order' => "FIELD(id, '6', '4', '1', '3', '2', '5')"

答案 1 :(得分:0)

您可以这样添加。 :)

->order(["FIELD(Product.id, '228')"=>'DESC', "Product.id"=>'DESC'])