【问题标题】:laravel 5.6 datatable pagination not workinglaravel 5.6数据表分页不起作用
【发布时间】:2020-05-03 04:16:48
【问题描述】:

我正在使用 laravel 5.6 并尝试将分页添加到引导数据表。但它不起作用。我出错了。请帮我找出我做的错误。

错误

方法 Illuminate\Database\Eloquent\Collection::links 不存在。

designation.blade.php(查看)

 @if(count($designations)>=1)
    <table class="table table-dark" id="designationTable">
        <thead>
        <tr>
            <th scope="col">#</th>
            <th scope="col">Designation Type</th>
            <th scope="col">Status</th>
            <th scope="col">Create At</th>
            <th scope="col">Action</th>

        </tr>
        </thead>
        @foreach ($designations as $designation)
        <tbody>
        <tr>
            <th scope="row">{{$designation->id}}</th>
            <td>{{$designation->designation_type}}</td>
            <td>{{$designation->status}}</td>
            <td>{{$designation->created_at}}</td>
            <td>
              <button type="" class="btn btn-secondary" id="btn_update_designation">Update</button>
            </td>
        </tr>
        </tbody>
        @endforeach
    </table>
    {{ $designations->links() }}
  @endif

DesignationController.php

namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use DB;
use App\Designation;

class DesignationController extends Controller
{
    public function index()
    {
       $designations = Designation::all();
       return view('pages.designation')->with('designations',$designations);
    }
}

【问题讨论】:

  • 请添加控制器文件代码。
  • @rika 在控制器中添加paginate() 方法而不是all()

标签: php laravel datatable pagination laravel-5.6


【解决方案1】:

您应该在控制器文件中使用 paginate() 方法。

public function index()
{
    $designations = Designation::paginate(15);
    return view('pages.designation')->compact('designations',$designations); 
}

【讨论】:

    【解决方案2】:

    Paginating Eloquent Results

    您还可以对 Eloquent 查询进行分页。在这个例子中,我们将 将 User 模型分页,每页 15 个项目。如您所见, 语法几乎与分页查询生成器结果相同:

    $designations = Designation::paginate(15);
    

    您可以在对查询设置其他约束后调用 paginate, 比如where子句:

    $designations = Designation::where('column', 'value')->paginate(15);
    

    【讨论】:

      【解决方案3】:

      您应该在控制器文件中使用 paginate() 方法。

      public function index()
      {
          $designations = Designation::paginate(10);
          return view('pages.designation')->with('designations',$designations); 
      }
      

      【讨论】:

        猜你喜欢
        • 2018-03-28
        • 2016-01-11
        • 2018-08-01
        • 2020-11-21
        • 2020-07-15
        • 2014-08-15
        • 1970-01-01
        相关资源
        最近更新 更多