Laravel 8 中缺少 Bootstrap 个分页页码
Missing Bootstrap pagination page numbers in Laravel 8
我将 table 从 blade 文件 B 复制到 blade 文件 A,但分页对 Blade 文件 A 不起作用。它确实显示了 10 个结果,但缺少页码导航。
以下截图供参考:
这是我的代码:
Blade 文件 A
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12">
<table class="table table-bordered">
<tr>
<th></th>
<th>No</th>
<th>Zone</th>
<th>Code</th>
<th>Description</th>
</tr>
@foreach ($items as $key => $item)
<tr>
<td>{{ Form::checkbox('item[]', $item->id, false, array('class' => 'name')) }}</td>
<td>{{ $loop->index+1 }}</td>
<td>{{ $item->zone }}</td>
<td>{{ $item->code }}</td>
<td>{{ $item->description }}</td>
</tr>
@endforeach
</table>
</div>
</div>
Blade 文件 B:
<table class="table table-bordered">
<tr>
<th>No</th>
<th>Zone</th>
<th>Code</th>
<th>Description</th>
<th width="280px">Action</th>
</tr>
@foreach ($items as $key => $item)
<tr>
<td>{{ ++$i }}</td>
<td>{{ $item->zone }}</td>
<td>{{ $item->code }}</td>
<td>{{ $item->description }}</td>
<td>
{{-- <a class="btn btn-info" href="{{ route('items.show',$item->id) }}">Show</a> --}}
@can('item-edit')
<a class="btn btn-primary" href="{{ route('items.edit',$item->id) }}">Edit</a>
@endcan
@can('item-delete')
{!! Form::open(['method' => 'DELETE','route' => ['items.destroy', $item->id],'style'=>'display:inline']) !!}
{!! Form::submit('Delete', ['class' => 'btn btn-danger']) !!}
{!! Form::close() !!}
@endcan
</td>
</tr>
@endforeach
</table>
控制器A:
public function create(Request $request)
{
$items = Item::paginate(10);
$sites = Site::get(["name", "id"])->all();
// $states = State::all();
// $cities = City::where("state_id",14)->get(["name", "id"]);
return view('services.create', compact('sites', 'items'))
->with('i', ($request->input('page', 1) - 1) * 5);
}
控制器 B:
public function index(Request $request)
{
$items = Item::orderBy('id', 'DESC')->paginate(10);
return view('items.index', compact('items'))
->with('i', ($request->input('page', 1) - 1) * 5);
}
这是新版本laravel的问题。
在您的 App\Providers\AppServiceProvider
class 中,您需要在 boot()
函数中添加以下代码以支持 bootstrap 分页器。
use Illuminate\Pagination\Paginator;
public function boot()
{
Paginator::useBootstrap();
}
在Blade的末尾</table>
请添加这个。
<div class="d-felx justify-content-center">
{{ $items->links() }}
</div>
我将 table 从 blade 文件 B 复制到 blade 文件 A,但分页对 Blade 文件 A 不起作用。它确实显示了 10 个结果,但缺少页码导航。
以下截图供参考:
这是我的代码:
Blade 文件 A
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12">
<table class="table table-bordered">
<tr>
<th></th>
<th>No</th>
<th>Zone</th>
<th>Code</th>
<th>Description</th>
</tr>
@foreach ($items as $key => $item)
<tr>
<td>{{ Form::checkbox('item[]', $item->id, false, array('class' => 'name')) }}</td>
<td>{{ $loop->index+1 }}</td>
<td>{{ $item->zone }}</td>
<td>{{ $item->code }}</td>
<td>{{ $item->description }}</td>
</tr>
@endforeach
</table>
</div>
</div>
Blade 文件 B:
<table class="table table-bordered">
<tr>
<th>No</th>
<th>Zone</th>
<th>Code</th>
<th>Description</th>
<th width="280px">Action</th>
</tr>
@foreach ($items as $key => $item)
<tr>
<td>{{ ++$i }}</td>
<td>{{ $item->zone }}</td>
<td>{{ $item->code }}</td>
<td>{{ $item->description }}</td>
<td>
{{-- <a class="btn btn-info" href="{{ route('items.show',$item->id) }}">Show</a> --}}
@can('item-edit')
<a class="btn btn-primary" href="{{ route('items.edit',$item->id) }}">Edit</a>
@endcan
@can('item-delete')
{!! Form::open(['method' => 'DELETE','route' => ['items.destroy', $item->id],'style'=>'display:inline']) !!}
{!! Form::submit('Delete', ['class' => 'btn btn-danger']) !!}
{!! Form::close() !!}
@endcan
</td>
</tr>
@endforeach
</table>
控制器A:
public function create(Request $request)
{
$items = Item::paginate(10);
$sites = Site::get(["name", "id"])->all();
// $states = State::all();
// $cities = City::where("state_id",14)->get(["name", "id"]);
return view('services.create', compact('sites', 'items'))
->with('i', ($request->input('page', 1) - 1) * 5);
}
控制器 B:
public function index(Request $request)
{
$items = Item::orderBy('id', 'DESC')->paginate(10);
return view('items.index', compact('items'))
->with('i', ($request->input('page', 1) - 1) * 5);
}
这是新版本laravel的问题。
在您的 App\Providers\AppServiceProvider
class 中,您需要在 boot()
函数中添加以下代码以支持 bootstrap 分页器。
use Illuminate\Pagination\Paginator;
public function boot()
{
Paginator::useBootstrap();
}
在Blade的末尾</table>
请添加这个。
<div class="d-felx justify-content-center">
{{ $items->links() }}
</div>