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


: のインスタンスで foreachIlluminate\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 に答える