【问题标题】:paginator->links() results in Method Illuminate\View\View::__toString() must not throw an exceptionpaginator->links() 导致 Method Illuminate\View\View::__toString() 不能抛出异常
【发布时间】:2015-04-14 06:47:29
【问题描述】:

我正在使用 Laravel 4.2、bootstrap 和 MySQL 制作项目。 现在我遇到了以下问题。

我检索数据库记录,然后使用分页显示它们。我对几个页面以相同的方式执行此操作,因此我创建了一个刀片模板以不重复自己。当我使用Paginatorlinks 方法时,问题就来了。使用 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


【解决方案1】:

来自问题下方的 cmets

我认为您误解了links('view') 的工作原理。您传递的视图将用于显示分页链接。给你一个想法,这是默认的:slider-3.php

好的,我看到了我的错误。现在我必须弄清楚为什么当我使用 links() 时它会将我重定向到主页而不是停留在实际页面中。非常感谢。

渲染页面中的链接是什么样子的?应该是?page=1

几小时后……

我解决了这个问题。我用我的一条路线搞砸了分页过程。分页器试图访问页面段,但路由将该请求重定向到主页。没有你的帮助,我做不到。

【讨论】:

    猜你喜欢
    • 2016-07-13
    • 2014-11-18
    • 2014-12-19
    • 2016-09-23
    • 2014-04-20
    • 2015-04-04
    • 2021-08-03
    • 2014-05-15
    • 1970-01-01
    相关资源
    最近更新 更多