詹姆斯·薛/laravel-sortable

为Eloquent模型提供排序行为

1.1.3 2019-07-12 08:42 UTC

This package is auto-updated.

Last update: 2024-09-12 22:54:32 UTC


README

此包提供了一个特质,可以为Eloquent模型添加排序行为。

新记录模型的排序列的值由该模型所有记录的排序列的最大值加1确定。

安装

此包可以通过Composer安装。

composer require james.xue/laravel-sortable

使用方法

要将排序行为添加到您的模型中,您必须

  1. 使用特质 James\Sortable\SortableTrait;;

    使用特质 James\Sortable\Sortable;

  2. 可选地指定将用作排序列的列。默认为 sort_field

示例

use James\Sortable\SortableTrait;
use James\Sortable\Sortable;

class MyModel extends Eloquent implements Sortable
{

    use SortableTrait;

    public $sortable = [
        'sort_field' => 'view',
        'sort_when_creating' => true,
    ];
    
    ...
}

如果您未设置值 $sortable['sort_field'],则包将假定您的排序列名称为 sort_field

如果您未设置值 $sortable['sort_when_creating'],则包将自动将最高的排序编号分配给新的模型;

假设 MyModel 的数据库表为空

$myModel = new MyModel();
$myModel->save(); // sort_field for this record will be set to 1

$myModel = new MyModel();
$myModel->save(); // sort_field for this record will be set to 2

$myModel = new MyModel();
$myModel->save(); // sort_field for this record will be set to 3

您也可以移动一个模型

$myModel = new MyModel();
$myModel->where('id', $id)->first()->move('up'); // up、down、top、end

许可证

MIT许可证(MIT)。请参阅许可证文件获取更多信息。