Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 18.01.2016 13:37:25

Соединение коллекций

Можно ли соединять найденные коллекции? Например я ищу:

$page1 = Page->where('id', 1)->get();
$page2 = Page->where('id', 2)->get();
$page3 = Page->where('id', 3)->get();

После чего, мне нужно объединить эти три коллекции в одну. Предлагается сделать так:

$c = new Collection;
$pages = $c->merge($page1)->merge($page2)->merge($page3);

Всё бы вроде отлично, но как мне теперь отсортировать результат? Чтобы работало следующее:

$pages = $pages->orderBy('created_at', 'DESC');

Не в сети

#2 18.01.2016 19:58:13

duster
Откуда: Мельбурн
Сообщений: 148

Re: Соединение коллекций

Звучит немного странно, но можно попробовать $pages = $c->merge($page1->all())->merge($page2->all()); и так далее
У коллекции не может быть 'ORDER BY DESC' – это же не SQL запрос, но можно сделать $pages->sortByDesc('created_at').

Не в сети

#3 18.01.2016 23:21:11

Re: Соединение коллекций

Чудесно, спасибо!!!

Не в сети

#4 19.01.2016 19:35:52

Re: Соединение коллекций

нафига 3 запроса когда известны ID ? -- можно обойтись одним запросом.
который в свою очередь вернёт одной коллекцией!

мужики когда мозг будете использовать?
одни и те же вопросы в стиле на граблях как на батуте.

Изменено hzone (19.01.2016 19:36:13)

Не в сети

#5 04.05.2017 12:38:08

Re: Соединение коллекций

hzone пишет:

нафига 3 запроса когда известны ID ? -- можно обойтись одним запросом.
который в свою очередь вернёт одной коллекцией!

мужики когда мозг будете использовать?
одни и те же вопросы в стиле на граблях как на батуте.

Если можно, то почему бы ни привести пример? Ты, вроде как, умные вещи говоришь, но по существу лишь указываешь на ошибку, думаешь все как и ты любят читать злые шутки? Ну ну.

Не в сети

#6 04.05.2017 13:07:32

Re: Соединение коллекций

$pages = Page::whereIn('id', [1,2,3])->orderBy('created_at', 'DESC');

Не в сети

#7 30.07.2017 15:13:47

Re: Соединение коллекций

А каким образом добавить пагинацию?
$actions = $collection->merge($clinic)->merge($analyze)->paginate(10); - так выдает ошибку.

Не в сети

Подвал раздела