Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel使用关系获取所有信息并对关系数据进行分页_Php_Laravel_Eloquent_Pagination_Laravel Blade - Fatal编程技术网

Php Laravel使用关系获取所有信息并对关系数据进行分页

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

我正在尝试获取所有用户及其相关(1:n)日志。但是,我希望将分页添加到关联的日志,而不是用户

我的控制器:

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);因为我的模特太完美了!我已经更新了答案并修复了错误:)