📜  Laravel 分页自定义

📅  最后修改于: 2022-05-13 01:56:26.340000             🧑  作者: Mango

Laravel 分页自定义

要了解自定义分页,您需要了解以下几点。

  • 什么是分页
  • 分页类型
  • 有哪些方法
  • 编写自定义 laravel 分页的步骤

什么是分页?

分页是一个导航栏,可以帮助用户从一个页面移动到另一个页面。自定义分页意味着设置分页导航栏的样式。 Laravel 文档说 Bootstrap CSS 是样式分页的默认 CSS。

在其他框架中,分页可能很痛苦,但 Laravel 让它变得更容易。 app/config/view 中有一个配置选项。 PHP

pagination()方法指定应该使用哪个视图来创建分页链接。

PHP
paginate(5);
        return view('students', compact('students'));
    }
}


PHP


PHP
paginate(5);
        return view('students', compact('students'));
    }
}
?>


PHP


HTML


  

    Page Title

  

    

Welcome To GFG

      

Default code has been loaded into the Editor.

      @if ($paginator->hasPages())     @endif   


HTML


  

    User list

  

    
    @extends('students.layout')
    @section('content')
    
        
            
                

Laravel 8 CRUD Operation                    Tutorial for Beginners

            
            
                                     Create Student             

        
    
    @if ($message = Session::get('success'))     
            {{ $message }}     
@endif                                                                                         @foreach ($students as $student)                                                                                    @endforeach     
NoFirstnameLastnameAgeAction
{{ ++$i }}{{ $student->firstname }}{{ $student->lastname }}{{ $student->age }}                 
                    Show                     Edit                     @csrf @method('DELETE')                                      
            
    {{ $students->links('vendor.pagination.custom') }}     @endsection   


分页类型:分页方式有两种写法

  1. simplePaginate() 方法
  2. paginate() 方法

方法之间的区别在于paginate()视图 将显示基于当前页面的“范围”链接,而simplePaginate()视图仅显示PrevNext按钮。

有哪些方法?

laravel 文档中提供了一些方法来定义 laravel 分页的属性。下面列出了一些重要的方法。

  • count():统计当前页面的条目数。
  • getCurrentPage():表示当前页码。
  • getFirstItem():获取结果中的第一项。
  • getOptions():获取分页器选项。
  • getUrlRange($start, $end):设置分页 URL 的范围。
  • getlastPage():获取可用的最后一页。 (使用 simplePaginate 时,此方法不可用)。
  • nextPageUrl():获取下一页的 URL。
  • onFirstPage():判断分页器是否在第一页。
  • perPage():每页显示的项目数。
  • previousPageUrl():获取上一页的 URL。

自定义分页视图:默认情况下,显示分页链接的视图与 Bootstrap CSS 框架兼容。自定义分页视图的最简单方法是使用vendor:publish命令将它们导出到resources/views/vendor目录

php artisan vendor:publish --tag=laravel-pagination 

此命令将自动创建文件夹/resources/views/vendor/pagination。

bootstrap-4 刀片。 PHP文件位于相应的默认分页视图中。您可以编辑此文件以修改分页 HTML。

如果您想设计一个不同的分页视图作为默认分页视图,那么您可能会在 AppServiceProvider 中使用分页器默认视图和默认 SimpleView 方法:

PHP


如果您不想使用 Bootstrap CSS,那么您可以创建自己的 custom.blade。 PHP文件。

编写自定义 Laravel 分页的步骤:在本节中,我们将介绍如何添加和自定义分页。要自定义 laravel,您需要执行以下步骤:

  1. 制作模型
  2. 制作控制器和视图
  3. 从数据库表中获取数据
  4. 分页显示数据

制作模型:要从要创建一个模型的数据库表中获取数据。请记住模型名称与要显示的数据库中的表名称相同。您可以使用以下命令创建模型

php artisan make : model User;

制作Controller和视图:然后在第二步中,需要创建一个Controller来建立模型和视图页面之间的连接。您可以使用以下命令创建控制器

php artisan make : controller StudentController;

PHP

paginate(5);
        return view('students', compact('students'));
    }
}
?>

从数据库表中获取数据:然后您需要更新web。 PHP在路由目录中添加控制器在路由中

PHP


分页显示数据:首先,我们创建custom.blade。 PHP然后将其扩展到学生视图

HTML



  

    Page Title

  

    

Welcome To GFG

      

Default code has been loaded into the Editor.

      @if ($paginator->hasPages())     @endif   

然后稍后我们创建一个视图页面以将数据显示为用户列表。是刀片。 PHP文件前。学生刀片。 PHP

HTML



  

    User list

  

    
    @extends('students.layout')
    @section('content')
    
        
            
                

Laravel 8 CRUD Operation                    Tutorial for Beginners

            
            
                                     Create Student             

        
    
    @if ($message = Session::get('success'))     
            {{ $message }}     
@endif                                                                                         @foreach ($students as $student)                                                                                    @endforeach     
NoFirstnameLastnameAgeAction
{{ ++$i }}{{ $student->firstname }}{{ $student->lastname }}{{ $student->age }}                 
                    Show                     Edit                     @csrf @method('DELETE')                                      
            
    {{ $students->links('vendor.pagination.custom') }}     @endsection   

输出:

Laravel 自定义分页