3

我的脚本有一个问题。我用文件列表做了foreach,但我需要分页,例如每个站点15个文件。我现在该怎么办?感谢帮助 :)

控制器:

$files = Storage::allFiles('/upload_file');

return view('cms.viewSystem.gallery.manageFiles')->with('files', $files);

刀片视图:

<table class="table table-bordered table-striped datatable" id="table-2">
    <thead>
        <tr>
            <th>Nazwa pliku</th>
            <th>Akcje</th>
        </tr>
    </thead>
    <tbody>
    @foreach($files as $file)
        <tr>
            <td>{{ $file }}</td>
            <td>
                <a href="{{ url('cms/media/deleteFile/'.$file) }}" class="btn btn-red btn-sm btn-icon icon-left"><i class="entypo-cancel"></i>Usuń</a>
            </td>
        </tr>
    @endforeach
    </tbody>
</table>

我尝试使用 paginate() 但此选项不起作用:(

4

2 回答 2

4

你可以做的是:

$page = (int) $request->input('page') ?: 1;

$files = collect(Storage::allFiles('/upload_file'));
$onPage = 15;

$slice = $files->slice(($page-1)* $onPage, $onPage);

$paginator = new \Illuminate\Pagination\LengthAwarePaginator($slice, $files->count(), $onPage);
return view('cms.viewSystem.gallery.manageFiles')->with('files', $paginator);

为了在视图中显示,您可以使用https://laravel.com/docs/5.1/pagination#displaying-results-in-a-view

于 2016-01-03T21:01:44.640 回答
1

Storage::allFiles()函数仅返回一个数组,因此您可以在 laravel 分页类中使用构建。请参阅分页文档https://laravel.com/docs/5.2/pagination

$paginator = new \Illuminate\Pagination\LengthAwarePaginator($items, $total, $perPage);

return view('my.view', ['files' => $paginator]);

在您的视图中,您可以正常循环结果,但也可以访问render()显示分页链接的功能。

@foreach($files as $file)
    {{ $file }}
@endforeach

{!! $files->render() !!}
于 2016-01-03T20:50:09.177 回答