我有数组$ 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
答案 0 :(得分:3)
您可以按照以下指定值进行排序:
'order' => "FIELD(id, '6', '4', '1', '3', '2', '5')"
答案 1 :(得分:0)
您可以这样添加。 :)
->order(["FIELD(Product.id, '228')"=>'DESC', "Product.id"=>'DESC'])