【问题标题】:Laravel Pagination not working in Blade file with Tailwind CSSLaravel 分页不能在带有 Tailwind CSS 的 Blade 文件中工作
【发布时间】:2021-10-05 15:44:18
【问题描述】:

我正在尝试使用 Laravel 分页。问题是当我在 Blade 文件中使用 links() 方法时,它会出错。例如,当我使用 URL“http://127.0.0.1:8000/tournaments?page=3”时,它可以正常工作,但会在 Blade 文件中出现错误,如下所述。

控制器

public function index()
{
    return view('front.tournaments', [
        'seriesdata' => $this->tournamentList()
    ]);
}

public function tournamentList()
{
    return Series::leftJoin('team_squads as ts', 'ts.id_series', 'series.id')
        ->leftJoin('series_team_squads as sts', 'sts.id_series', 'series.id')
        ->leftJoin('admins as a', 'a.adminable_id', 'series.id')
        ->where('series.lang', 'en')
        ->orderBy('series.id', 'asc')
        ->groupBy('series.id')
        ->select('series.*')
        ->paginate(10)
        ->append([
            'logo_url',
            'location'
        ]);
}

刀片

@foreach($seriesdata as $series)
<div class="flex flex-inline xs:flex-col sm:flex-row">
    <div class="w-full border-b">
        <div class="flex justify-center items-start">
            <div class="py-2 mx-auto sm:bg-white xs:bg-white  w-full">
                <a href="{{ url('tournaments/').'/'.$series->url.'/'.$series->id }}" class="flex">
                    <div class="grid grid-rows-1 grid-flow-col gap-1">
                        <div class="row-span-1 col-span-2">
                            <img src="{{ $series->logo_url }}" alt="avatar" class="object-cover w-12 h-12 mx-4">
                        </div>
                        <div class="row-span-1 col-span-2">
                            <h1 class="font-bold text-lg">{{ $series->name }}</h1>
                            <p class="uppercase font-light text-sm text-grey">{{ $series->location->address }}</p>
                        </div>
                    </div>
                </a>
            </div>
        </div>
    </div>
</div>
@endforeach
{{ $seriesdata->links() }}

错误

【问题讨论】:

  • 始终返回 -&gt;paginate(xxxx) 并且在该方法调用之后永远不要添加任何其他内容。 -&gt;paginate 应该是您调用并返回的最后一件事 ALWAYS,所以如果您想添加其他任何内容,请在它之前完成。

标签: laravel pagination tailwind-css


【解决方案1】:

您的 append() 方法似乎阻止了刀片中的分页。尝试将其从控制器中的tournamentList() 中删除。


当您在-&gt;paginate() 之后执行-&gt;append() 时,您正在将-&gt;paginate() 返回的内容(基本上是LenghtAwarePaginator)转换为Collection,而Collection 没有-&gt;links() 方法。您可以看到这一点,因为错误表明您正在尝试在 Illuminate\Database\Eloquent\Collection 中调用 links 方法,这就是我知道 -&gt;append() 正在返回的方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-21
    • 2021-10-07
    • 1970-01-01
    • 2023-01-13
    • 2014-06-18
    • 2023-01-10
    • 2021-12-27
    • 1970-01-01
    相关资源
    最近更新 更多