samrat131/column-sortable

按数据库列或字段排序 Laravel 模型视图列表

v1.4 2020-10-05 21:51 UTC

This package is auto-updated.

Last update: 2024-09-06 06:51:02 UTC


README

按数据库列或字段排序 Laravel 模型视图列表

安装

要在项目中使用此包,请使用 Composer 将包添加到您的 Laravel 应用程序中

composer require samrat131/column-sortable

编辑 config/app.php 文件并添加以下行(仅适用于低于 5.5 版本的 Laravel)

'providers' => [
	...
	Samrat131\ColumnSortable\ColumnSortableServiceProvider::class,
]

用法

模型

编辑任何 Laravel 模型 .php 文件,添加此包附带的可排序特性 SortableTrait,添加 protected $columnToSort 变量,并列出需要可排序的数据库字段/列。

<?php

namespace App;

use Samrat131\ColumnSortable\SortableTrait;

class User extends Model
{
    use SortableTrait;

    protected $columnToSort = [
        'id',
        'name',
        'email',
        'created_at'
    ];

控制器

使用模型的方法 sortable(),例如 User::sortable()->get()User::sortable()->paginate(15)

<?php

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;

class HomeController extends Controller
{

    public function index()
    {
        $users = User::sortable()->get();
        return view('users.index', compact('users'));
    }
}

您可以设置默认的可排序参数,例如 User::sortable(['created_at', 'desc'])->get()

视图

在视图 blade.php 文件中,添加 @sortable_column('id', 'ID') 此视图方法(blade 指令)与数据库列/字段名。第一个参数(必需)是数据库字段名,第二个参数(可选)是前端显示。

<tr>
    <td>@sortable_link('id', 'ID')</td>
    <td>@sortable_link('name', 'Name')</td>
    <td>@sortable_link('email', 'Email')</td>
    <td>@sortable_link('created_at', 'Created')</td>
</tr>

此包使用字体图标(fa fa-arrow-circle-down 和 fa fa-arrow-circle-up)来表示上下箭头

感谢