Php Laravel使用关系获取所有信息并对关系数据进行分页
我正在尝试获取所有用户及其相关(1:n)日志。但是,我希望将分页添加到关联的日志,而不是用户 我的控制器:Php Laravel使用关系获取所有信息并对关系数据进行分页,php,laravel,eloquent,pagination,laravel-blade,Php,Laravel,Eloquent,Pagination,Laravel Blade,我正在尝试获取所有用户及其相关(1:n)日志。但是,我希望将分页添加到关联的日志,而不是用户 我的控制器: public function index() { $users = User::with(['journal'])->orderBy('name', 'asc')->get(); return view('journals/journals', ['users' => $users]); } 我的刀片: @foreac
public function index()
{
$users = User::with(['journal'])->orderBy('name', 'asc')->get();
return view('journals/journals', ['users' => $users]);
}
我的刀片:
@foreach($users as $user)
<a class="list-group-item list-group-item-action" data-toggle="collapse" href="#collapse{{$user->id}}" role="button" aria-expanded="false" aria-controls="collapse{{$user->id}}">
{{$user->name}}
</a>
<div class="collapse mt-1" id="collapse{{$user->id}}">
<div class="card card-body">
<div class="list-group">
<table class="table table-sm table-hover">
<thead>
<tr>
<th scope="col">Kunde</th>
<th scope="col">Betreff</th>
<th scope="col">Leistungsart</th>
<th scope="col">Beginn</th>
<th scope="col">Ende</th>
<th scope="col">Dauer</th>
<th scope="col">Arbeitszeit</th>
</tr>
</thead>
<tbody>
@foreach($user->journal as $journal)
<tr onclick="window.location='{{route('journal.show', [$journal->id])}}'">
<th scope="row">{{$journal->customer->name}}</th>
<td>{{$journal->title}}</td>
<td>{{$journal->type}}</td>
<td>{{$journal->started}}</td>
<td>{{$journal->ended}}</td>
<td>{{$journal->duration}}</td>
<td>{{$journal->worked}}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
@endforeach
我的用户模型:
public function journal(){
return $this->hasMany('App\Journal', 'user_id', 'id');
}
同样,我试图实现的是,我可以打印出每个用户并为他们的日志分页,而不是为用户分页
我真的希望有人能在那里帮助我在blade中渲染
在刀片中每个循环的日志上方,尝试放置以下内容:
@php
$paginated_journals = $user->journal()->paginate(10);
@endphp
@foreach($paginated_journals as $journal)
...
@endforeach
然后,您的for each循环应该如下所示:
@php
$paginated_journals = $user->journal()->paginate(10);
@endphp
@foreach($paginated_journals as $journal)
...
@endforeach
在for each循环之后,您可以只放置:
$paginated_journals->links()
获取分页链接的步骤
控制器中的预加载数据
您可以在服务器端执行相同的操作。创建一个空的自定义数组,遍历每个用户,并将子数组添加到该自定义数组:
array\u push($custom\u数组,['user'=>$user,'journals'=>$user->journal()->paginate(10)])
通过这种方式,您可以将自定义数组发送到刀片服务器,在其中循环,并呈现用户数据和分页日志。您需要在每个用户的日志上添加分页还是在所有日志上添加分页,而不管用户是谁?该死,这很管用!我只需要更改行$paginated_journals=$user->journals()->paginate(10);到$paginated_journals=$user->journal()->paginate(10);因为我的模特太完美了!我已经更新了答案并修复了错误:)