Я создал материализованное представление: accounts_index
, у которого есть пара оставшихся соединений, поэтому мне нужно создать группу с помощью красноречивой модели. Мне также нужно разбить коллекцию на страницы, и у меня возникают проблемы с порядком вещей. Материализованный вид:
CREATE materialized VIEW accounts_index
AS SELECT a.account_uuid,
a.account_no,
a.person_owner_uuid,
a.company_owner_uuid,
a.account_group_uuid,
a.account_scope_uuid,
a.created_at,
a.deleted_at,
s.service_uuid,
s.status,
st.service_type
FROM accounts a
LEFT JOIN services s
ON a.account_uuid = s.account_uuid
LEFT JOIN service_types st
ON s.service_type_uuid = st.service_type_uuid
Красноречивая модель может захватить эту таблицу следующим образом: AccountIndex::all();
.
Я мог бы разбить на страницы это: AccountIndex::paginate();
или сделать groupBy: AccountIndex::all()->groupBy('account_uuid');
, но потерял из-за того, как объединить два. Некоторые попытки:
AccountIndex::all()->groupBy('account_uuid')->paginate()
: Method Illuminate\Database\Eloquent\Collection::paginate does not exist.
AccountIndex::paginate()->groupBy('account_uuid');
: возвращает коллекцию без нумерации страниц.
$accountsIndex = collect(\DB::table('accounts_index')->get());
$accountsIndex->groupBy('account_uuid')->paginate();
: То же Method Illuminate\Support\Collection::paginate does not exist.
исключение.
Основная проблема, которую я пытаюсь решить, состоит в том, что эти объединения будут возвращать учетные записи, которые имеют несколько служб (так что несколько строк), и мне нужно затем сгруппировать по account_uuid
. Заранее спасибо за любые идеи!