Использование CakePHP 2.0 здесь. Название немного вводит в заблуждение, поэтому, чтобы очистить вещи, у меня есть сеансовый массив, который заполнен идентификаторами продуктов, поскольку пользователь добавляет их в корзину. Таким образом, этот массив выглядит как [0] = > 25, [1] = > 70 и т.д. Пусть говорят, что этот массив называется $продуктами.
Я хочу спросить, есть ли какая-то возможность иметь массив, который я получаю, используя функцию 'find' model ('conditions' = > array ('Product.id' = > $products)) для сортировки не по некоторые из значений Model.field(как в опции "order" ), а индексы массивов $products, так что, когда я представляю содержимое продуктов в поле зрения, я получаю все эти продукты в корзине, отсортированные в такой последовательности, как пользователь добавлял их.
Вот пример - Сеанс массива $products:
[0] => 35,
[1] => 15,
[2] => 25
Затем я передаю этот массив в условия функции поиска:
$list = $this->Product->find('all', array('conditions' => array('Product.id' => $products)));
В конце $list выдает массив, отсортированный по product.id. Поэтому вместо того, чтобы:
[0] => Array
(
[Product] => Array
(
[id] => 35 )),
[1] => Array
(
[Product] => Array
(
[id] => 15 )),
[2] => Array
(
[Product] => Array
(
[id] => 25 ))
Я получаю:
[0] => Array
(
[Product] => Array
(
[id] => 15 )),
[1] => Array
(
[Product] => Array
(
[id] => 25 )),
[2] => Array
(
[Product] => Array
(
[id] => 35 ))
Пока все ответы не решают мою проблему. Пожалуйста, обратите пристальное внимание на пример, который я дал, это очень просто, но ответы предоставляются в разных ключах.
Опять же, мне нужен конечный массив $list для сортировки по индексам массива сеанса $products, но я получаю $list, отсортированный по Product.id, хотя я вообще не указывал 'find(array('order'=> ...))'
и даже пытался установить его в false.