novius/laravel-nova-contexts

Laravel Nova 工具,用于管理资源的上下文。

2.0.0 2022-06-14 08:30 UTC

This package is auto-updated.

Last update: 2024-09-26 11:18:19 UTC


README

此包允许您管理资源上下文。

它提供

  • 在后台导航时的默认上下文选择(在 nova 卡中)。
  • 基于默认上下文的上下文过滤器。
  • 资源上下文字段。

需求

  • PHP >= 8.0
  • Laravel Nova >= 4.0

注意:这些说明适用于 Laravel Nova >= 4.0。如果您使用的是早期版本,请参阅 早期版本文档

安装

composer require novius/laravel-nova-contexts

配置

一些可覆盖的选项可供使用。

php artisan vendor:publish --provider="Novius\LaravelNovaContexts\LaravelNovaContextsServiceProvider" --tag="config"

上下文选择器

有一张卡片可以在上下文之间导航。您可以轻松将其添加到自定义资源索引中。

<?php

namespace App\Models;

use Laravel\Nova;
use Novius\LaravelNovaContexts\LaravelNovaContexts;

class Page extends Resource
{
    // Some resources definitions...
    
    public function cards(Request $request)
    {
        return [
            (new LaravelNovaContexts())->dynamicHeight(),
        ];
    }
}

模型配置

要使模型“可上下文”,只需使用 HasContext 特性。

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Novius\LaravelNovaContexts\Traits\HasContext;

class Page extends Model
{
    use HasContext;

    /**
     * @return string
     */
    public function contextFieldName(): string
    {
        return 'locale';
    }
}

Nova 资源字段配置

您可以将上下文字段添加到 Nova 资源的字段中

public function fields(Request $request)
{
    return [
        // ...
        
        ContextField::make('locale'),
        
        // ...
    ];
}

Nova 资源过滤器配置

您可以将上下文过滤器添加到 Nova 资源的过滤器中

/**
 * Get the filters available for the resource.
 *
 * @param \Illuminate\Http\Request $request
 * @return array
 */
public function filters(Request $request)
{
    return [
        new ContextFilter($this->model()),
    ];
}

Lint

使用 php-cs 运行

composer run-script lint

贡献

欢迎贡献!

在 Github 上提交问题,或创建一个 Pull Request。

许可证

此包受 GNU Affero 通用公共许可证 v3 或(根据您的要求)任何后续版本的约束。