首页 > 解决方案 > 在foreach之后放置链接时Laravel Pgination不起作用

问题描述

我正在使用 laravel 5.2,但我在分页链接方面遇到了一些问题。当我添加此代码时:

{{ $wachat->links() }}

在 foreach 之后,我收到此错误:

Call to undefined method Illuminate\Database\Query\Builder::links() (View: /Applications/MAMP/htdocs/kc/kyo-webservice/resources/views/wechat/show.blade.php)

在我的控制器中,我正在使用以下代码:

public function wechatshows($d1, $id, $name, Request $request)
{
    $users = Keyuser::where('imception_id', '=', $d1)->first();
    $user = UserKey::where('id', '=', $id)->first();
    if ($name == "all") {
        $wachat = Wechat::where('key', '=', $d1)->orderBy('id', 'DESC')->paginate(5);
    } else {
        $wachat = Wechat::where('key', '=', $d1)->where('groupName', '=', $name)->orderBy('id', 'DESC')->paginate(5);
    }

    $wechatcontact = Wechat::select('groupName')->groupBy('groupName')->get();
    return view('wechat.show', ['wachat' => $wachat, 'user' => $user, 'product' => $d1, 'users' => $users, 'keyUser' => $d1, 'wechatcontact' => $wechatcontact]);
}

我在我的视图中使用此代码:

            <tbody id="chatListBody" style="overflow-y: scroll;">
                    @foreach ($wachat as $wachat)
                    <tr>
                    <input type="hidden" class="wechatname" data-id="{{ $wachat->id }}">
                        <td>{{ $wachat->id }}</td>
                        <td>{{ $wachat->wxid }}</td>
                        <td>{{ $wachat->username }}</td>
                        @if ($wachat->type === 'image')
                        <td><a class="example-image-link" href="{{ url('/images/'.$wachat->imgPath.'') }}" data-lightbox="{{$wachat->imgPath}}"
                                data-title="{{$wachat->imgPath}}"><img class="imgwhatsapp" data-lightbox="roadtrip" src="{{ url('/images/'.$wachat->imgPath.'') }}"></a></td>
                        @elseif ($wachat->type === 'video')
                        <td><a href="{{ url('/images/'.$wachat->imgPath.'') }}">{{$wachat->imgPath}}</a></td>
                        @elseif ($wachat->type === 'audio')
                        <td> <a href="{{ url('/images/'.$wachat->imgPath.'') }}">{{$wachat->imgPath}}</a> </td>
                        @elseif ($wachat->type === 'text')
                        <td>{{$wachat->message}}</td>
                        @else
                        <td>no data</td>
                        @endif
                        <td>{{ $wachat->created_at }}</td>
                    </tr>
                    @endforeach
                </tbody>
                {{ $wachat->links() }}
            </div>
        </table>

当我将 {{ $wachat->links() }} 放在 foreach 之上时,它正在工作,我不知道它为什么会发生。

标签: laravelpagination

解决方案


也许,$wachat正在覆盖内部@foreach($wachat as $wachat)。所以,它找不到links()方法。

您应该使用@foreach($wachat as $singleWachat)或根据您的方便。


推荐阅读