binomeway/nova-taxonomies-tool

此软件包已被弃用,不再维护。未建议替代软件包。

用于管理分类的 Laravel Nova 工具。

v1.3.0 2021-08-22 18:47 UTC

This package is auto-updated.

Last update: 2024-06-23 00:42:06 UTC


README

Nova 分类

此软件包使用 spatie/laravel-tagsspatie/nova-tags-field

安装

请参阅 spatie/laravel-tags 文档,准备您的模型并发布所需的迁移。

NovaServiceProvider.php 中注册此工具

public function tools(){
    return [
        \BinomeWay\NovaTaxonomiesTool\NovaTaxonomiesTool::make(),
    ];
}

使用方法

标签类型

使用 Nova 面板添加您的标签类型或从 ServiceProvider 注册它们。

    use  \BinomeWay\NovaTaxonomiesTool\Facades\Taxonomies;
    
    public function boot() {
        Taxonomies::addType('categories', 'Categories');
        
        // or multiple
        
        Taxonomies::addTypes([
            'name' => 'Display Name',
            'colors' => 'Colors',
            'types' => 'Types',
        ]);
    }

操作

更新多个标签

use BinomeWay\NovaTaxonomiesTool\Nova\Actions\UpdateTag;

function actions(Request $request) {

    return [
        // This will result in have the default button Update Tag
        UpdateTag::make('categories'),  // Update Tag
        
        // You can Override the label using the constructor or the 'withLabel' method
        UpdateTag::make('categories', 'Categories')  // Update Categories
       
         // alternative
        ->withLabel('Categories'), // Will produce same result: Update Categories
        
        // If you want to override the name entirely use the 'withName' method
        UpdateTag::make('categories')->withName('My Action Name')
    ];
}

更新单个标签

强制选择单个标签。这将显示一个选择字段。

use BinomeWay\NovaTaxonomiesTool\Nova\Actions\UpdateSingleTag;

public function actions(Request $request) {

    return [
        UpdateSingleTag::make('status', 'Status'), 
    ];
}

您可以使用上述相同的方法来自定义显示名称。

过滤器

按单个标签过滤

按单个标签过滤资源。

use BinomeWay\NovaTaxonomiesTool\Nova\Filters\SingleTag;

public function filters(Request $request)
    {
        return [
            SingleTag::make()
                ->withName(__('By Status')) // Override the displayed name
                ->withTagType('status')
        ];
    }

按多个标签过滤

一次按多个标签过滤资源。

use BinomeWay\NovaTaxonomiesTool\Nova\Filters\MultiTags;

public function filters(Request $request)
    {
        return [
              MultiTags::make()
                ->withName(__('By Position'))
                ->withTagType('page-position'),
        ];
    }