2015-06-05 3 views
0

Это упрощенная версия того, что мне нужно сделать, поэтому ниже может показаться бессмысленным.Добавление в коллекцию?

Я получаю строку с:

$firstProduct = Product::first(); 

Я также получить все с:

$ data = Product::all(); 

мне нужен первый продукт, чтобы быть в положении 5, так что я:

$data = $data->splice(5, 0, $firstProduct); 

Но я возвращаю пустую коллекцию.

Куда я иду не так?

+0

Возможно, было бы проще просто отсортировать продукты с помощью чего-то вроде «Product :: orderBy (...) -> get()'. Если ваш порядок сортировки (перемещающийся элемент № 1 в позицию №5) довольно прост, это позволит вам получить коллекцию за один шаг. – Kryten

+0

Я не могу использовать сортировку, как я сказал в своем вопросе свою упрощенную версию того, что я пытаюсь сделать. – panthro

+0

Почему вы отметили свой вопрос как Laravel 4, так и Laravel 5? Какую версию вы используете? – Styphon

ответ

1

Только метод обед на существующем объекте:

$data->splice(5, 0, [$firstProduct]); 

(не переписывать сам объект)

Additionaly, использование скобок на добавленного элемента:

[$firstProduct] 

, чтобы предотвратить литье это элемент в массив и добавление всех его полей в коллекции вместо целого объекта.

Смежные вопросы