【发布时间】:2015-04-14 06:47:29
【问题描述】:
我正在使用 Laravel 4.2、bootstrap 和 MySQL 制作项目。 现在我遇到了以下问题。
我检索数据库记录,然后使用分页显示它们。我对几个页面以相同的方式执行此操作,因此我创建了一个刀片模板以不重复自己。当我使用Paginator 的links 方法时,问题就来了。使用 null 参数时,该方法不会引发任何异常,但它不能正常工作,因为无论您身在何处,链接都会将您重定向到主页。
在 Laravel 4.2 文档中,如下所述:
如果你想指定一个自定义视图用于分页,你 可以将视图传递给 links 方法:
<?php echo $users->links('view.name'); ?>
但如果我尝试在我的刀片模板中做这样的事情:
{{ $products->links('client.pages.search_results') }}
我得到以下异常:
方法 Illuminate\View\View::__toString() 不得抛出异常
编辑
这是search_results 模板:
@extends('client.layouts.client')
@section('content')
@include('client.includes.products', ['header_title' => "Results for $search",
'show_platform_icon' => true,
'view_name' => 'client.pages.search_results'])
@stop
这是products 模板:
<div>
<div class="navbar navbar-default">
<div class="navbar-collapse navbar-header">
<h3>{{ $header_title }}</h3>
</div>
<div class="navbar-collapse navbar-right">
{{ Form::open(['class' => 'navbar-form']) }}
<div class="form-group">
<select class="form-control" id="sorter" >
<option disabled selected>Order by</option>
<option value="{{ URL::route('index') }}/name/asc">Name asc</option>
<option value="{{ URL::route('index') }}/name/desc">Name desc</option>
@if(Auth::check())
<option value="{{ URL::route('index') }}/discount/asc">Discount asc</option>
<option value="{{ URL::route('index') }}/discount/desc">Discount desc</option>
@else
<option value="{{ URL::route('index') }}/price/asc">Price asc</option>
<option value="{{ URL::route('index') }}/price/desc">Price desc</option>
@endif
</select>
</div>
{{ Form::close() }}
</div>
</div>
<div class="col-md-12">
<ul class="thumnails col-md-11">
@foreach ($products as $index => $product)
<li class="col-md-3 col-md-offset-1 thumbnail">
<a href="#product">
{{ HTML::image($product->game->thumbnail_image_path, $product->game->name) }}
</a>
<div class="caption">
@if($show_platform_icon)
<a href="#platform" class="pull-left">
{{ HTML::image($product->platform->icon_path, $product->platform->name) }}
</a>
@endif
<a href="#product">
<div class="text-center">
@if(Auth::check() && $product->discount)
<h3>
{{ floatval($product->price * ((100 - $product->discount) / 100)) }} €
<span class="label label-default">-{{ floatval($product->discount)}}%</span>
</h3>
@else
<h3>{{ floatval($product->price) }} €</h3>
@endif
</div>
</a>
</div>
</li>
@endforeach
</ul>
<div class="col-md-4 col-md-offset-4 text-center">
{{ $products->links($view_name) }}
</div>
</div>
</div>
【问题讨论】:
-
你能告诉我们
client.pages.search_results吗?我认为错误出现在该视图中。 -
我编辑了我的问题。您可以欣赏我将视图名称传递给产品模板以使其动态工作。
-
我认为您误解了
links('view')的工作原理。您传递的视图将用于显示分页链接。给你一个想法,这是默认的:slider-3.php -
渲染页面中的链接是什么样子的?应该是
?page=1 -
我解决了这个问题。我用我的一条路线搞砸了分页过程。分页器试图访问页面段,但路由将该请求重定向到主页。没有你的帮助,我做不到。
标签: php laravel-4 pagination