signifly/nova-order-field

基于 spatie/eloquent-sortable 的 Laravel Nova 排序字段。

2.0.8 2019-10-25 12:47 UTC

This package is auto-updated.

Last update: 2024-09-06 20:55:12 UTC


README

Latest Version on Packagist Total Downloads

描述

一个字段,使用 Spatie 的 eloquent-sortable 包为你的 Laravel Nova 资源索引添加排序功能。

演示

Demo

安装

此包可以通过 Composer 安装。

composer require signifly/nova-order-field

使用

  1. 按照 eloquent-sortable 存储库中的 使用说明 使你的模型可排序。
  2. Signifly\Nova\Fields\Order\Orderable 特性添加到你的 Nova 资源中。
  3. 在你的资源中添加一个名为 $defaultOrderField 的公共静态属性,包含你的排序列。
  4. OrderField 添加到你的 Nova 资源 fields 方法中。

分组

如果你的模型/表有一个分组字段(通常是一个外键):id, user_id, title, order_column 并且你希望上述方法考虑它,你可以在你的模型中创建一个 buildSortQuery 方法

public function buildSortQuery()
{
    return static::query()->where('user_id', $this->user_id);
}

这将限制计算只针对模型实例的字段值。

示例

use Signifly\Nova\Fields\Order\Orderable;
use Signifly\Nova\Fields\Order\OrderField;

class Page extends Resource
{
    use Orderable;
    
    public static $defaultOrderField = 'order';
    
    public function fields(Request $request)
    {
        return [
            OrderField::make('Order'),
        ];
    }
}

感谢 Michiel Kempen 的初始工作。