0

我有一个问题。这是我第一次使用分页。

这是我的看法:

@extends('base')
@section('title', 'News')
@stop
@section('main')

@if ($news->count())
@foreach($news as $news)
<div class="container">
    <div class="doc-content-box">
        <legend>{{ $news->title }} <div id="spaceholder"></div>

            <p>
                <h6><span class="muted"><i class="icon-calendar"></i> {{ $news->created_at }} &nbsp;&nbsp;&nbsp;&nbsp;<a href="/profile/{{ $news->author }}">{{ $news->author }}</a><span>
                </p>
            </h6>
        </legend>
        <div style="margin-top:7px">

            <p>{{ $news->content }}</p>
        </div>



        <div class="btn-group">
            <a class="btn btn-primary" href="{{ URL::route('news.edit', $news->id) }}"><i class="icon-pencil"></i> Edit</a>

            <a class="btn btn-danger" href="{{ URL::route('news.destroy', $news->id) }}"><i class="icon-trash icon-large"></i> Delete</a>
        </div>


    </div> <!-- /container -->
    <div id="spaceholder">&nbsp;</div>
@endforeach

{{ $news->links() }}

@else
<div class="container">
    <div class="doc-content-box">
        <legend>News</legend>
    <p>There are no news.<br /><br />If you wish to create a news, you should go to our <a href="{{ URL::to('news') }}">news management page!</a></p>
</div>
</div>
@endif

@stop

然后它会导致错误Call to undefined method Illuminate\Database\Query\Builder::links()

我也尝试更改@foreach($news as $news)@foreach($news->results as $news),但随后出现新错误:

Undefined property: Illuminate\Pagination\Paginator::$results

分页器本身可以工作,但分页链接(下一个和上一个)不起作用。

4

2 回答 2

1

当您的查询尚未执行时会发生这种情况。您的变量$news是查询构建器,而不是对象数组。打电话前:

$news->links();

您需要通过调用执行查询:

$news = $news->get();

然后在调用该get()方法后,它将返回一个表示结果集的数组,而不是Illuminate\Database\Query\Builder.


注意:当您在它的实例中执行 foreach 时,Illuminate\Database\Query\Builder它将执行查询,但结果将在 foreach 循环内进行。这就是您无法检索分页链接的原因,因为您引用的对象是查询而不是结果。

于 2013-08-12T02:49:28.027 回答
0

如果您测试该代码:

@foreach($news as $new)
    <div class="container">
        <div class="doc-content-box">
            <legend>{{ $new->title }} <div id="spaceholder"></div>

                <p>
                    <h6><span class="muted"><i class="icon-calendar"></i> {{ $new->created_at }} &nbsp;&nbsp;&nbsp;&nbsp;<a href="/profile/{{ $new->author }}">{{ $new->author }}</a><span>
                    </p>
                </h6>
            </legend>
            <div style="margin-top:7px">

                <p>{{ $new->content }}</p>
            </div>



            <div class="btn-group">
                <a class="btn btn-primary" href="{{ URL::route('news.edit', $new->id) }}"><i class="icon-pencil"></i> Edit</a>

                <a class="btn btn-danger" href="{{ URL::route('news.destroy', $new->id) }}"><i class="icon-trash icon-large"></i> Delete</a>
            </div>


        </div> <!-- /container -->
        <div id="spaceholder">&nbsp;</div>
    @endforeach
于 2015-01-13T08:56:58.983 回答