Многократная готовая загрузка с пагинацией в laravel - PullRequest
0 голосов
/ 13 февраля 2019

Я хочу вернуть разбитые на страницы данные загруженных отношений, чтобы я мог отобразить их, используя нумерацию страниц в моем шаблоне представления

public function show(Group $group)
{
    $data = ['members', 'assets', 'liabilities', 'loans','shares'];

    $group = $group->load($data);

    return view('admin.groups.show', compact('group'));
}

Это моя модель группы

<?php

namespace App;

class Group extends BaseModel
{   
    use Enumable;

    public function constitution()
    {
        return $this->hasOne(Constitution::class);
    }

    public function members()
    {
        return $this->hasMany(Member::class);
    }


    public function assets()
    {
        return $this->hasManyThrough(Asset::class, Meeting::class)
        ->orderByDesc('meeting_id')
        ->orderBy('member_id');
    }

    public function loans()
    {
        return $this->hasManyThrough(Loan::class, Member::class)
        ->orderByDesc('meeting_id')
        ->orderBy('member_id');
    }

    public function shares()
    {
        return $this->hasManyThrough(Share::class, Member::class)
        ->orderByDesc('meeting_id')
        ->orderBy('member_id');
    }

    public function liabilities()
    {
        return $this->hasOne(Liability::class)->latest();
    }
}

Iнужно разбить массив данных на $

1 Ответ

0 голосов
/ 13 февраля 2019

Использование setRelations():

public function show(Group $group)
{
    $group->setRelations([
        'members', $group->members()->paginate(5),
        'assets', $group->assets()->paginate(5),
        'liability', $group->liability()->paginate(5),
        'loans', $group->loans()->paginate(5)
    ]);

    return view('admin.groups.show', compact('group'));
}
...