formfeed-uk/nova-resource-cards

一个Laravel Nova扩展包,用于在所有CRUD页面上显示卡片。

1.1.0 2022-10-12 16:22 UTC

This package is auto-updated.

Last update: 2024-09-14 01:42:41 UTC


README

这个 Laravel Nova 扩展包增加了在页面顶部添加资源卡片的功能。

我认为这个包的功能已经完善,但我仍然欢迎功能请求和pull请求,如果你有想要看到的功能,请随时提交问题。

要求

  • php: >=7.4
  • laravel/nova: ^4.0

功能

此包封装了以下Laravel Nova页面,并增加了在上面显示资源卡片的能力

  • 索引
  • 详情
  • 创建
  • 更新
  • 附加
  • 更新附加
  • 复制
  • 透镜
  • 仪表板

由于这个包封装了页面,所以它应该对Nova更新有较强的鲁棒性。

此包还包括对显示卡片的页面的更细粒度控制,遵循与字段相同的逻辑

  • showOnIndex
  • showOnDetail
  • showOnCreating
  • showOnUpdating
  • showOnPreview
  • showOnAttach
  • showOnReplicate
  • showOnLens
  • showOnDashboard
  • hideFromIndex
  • hideFromDetail
  • hideFromDashboard
  • hideFromLens
  • hideWhenCreating
  • hideWhenUpdating
  • hideWhenAttaching
  • hideWhenReplicating
  • onlyOnIndex
  • onlyOnDetail
  • onlyOnForms (现在包括附加和复制)
  • onlyOnLens
  • onlyOnDashboard
  • exceptOnForms (现在包括附加和复制)

卡片应该扩展包含的 ResourceCard 类,而不是标准类,但其他方面可以像常规卡片一样使用。

安装

使用composer将包安装到使用 Nova 的Laravel应用中

composer require formfeed-uk/nova-resource-cards

用法

通用

  1. 创建一个卡片,根据 Nova文档 (或者如果你想要将其转换为ResourceCards,可以使用现有的卡片)。

  2. 更新你的卡片,使其扩展ResourceCard而不是Card

// MyResourceCard.php

...

use Formfeed\ResourceCards\ResourceCard;

class MyResourceCard extends ResourceCard {

    ...

}
  1. 然后就像常规卡片一样,在资源中包含它
// MyNovaResource.php

use App\MyResourceCard;

...

class MyNovaResource extends Resource {

...

    public function cards(NovaRequest  $request) {
        return [
            MyResourceCard::make($request)
        ];
    }

...

}

可选地链式可见性和授权

    public function cards(NovaRequest  $request) {
        return [
            MyResourceCard::make($request)
                ->onlyOnForms()
                ->canSee(function ($request) {
                    return $request->user()->role === "admin";
                }),
        ];
    }

就这么简单!

可用参数

你的卡片有多种参数可用,具体取决于当前页面。这些参数作为查询参数在请求对象上可用。

注意:尽管这些参数可用,但并不意味着它们会在任何请求中被填充。

索引

  • resourceName
  • display: "index"

详情

  • resourceName
  • resourceId
  • display: "detail"

创建

  • resourceName
  • viaResource
  • viaResourceId
  • viaRelationship
  • display: "create"

更新

  • resourceName
  • resourceId
  • viaResource
  • viaResourceId
  • viaRelationship
  • display: "update"

复制

  • resourceName
  • resourceId
  • viaResource
  • viaResourceId
  • viaRelationship
  • display: "replicate"

附加

  • resourceName
  • resourceId
  • viaResource
  • viaResourceId
  • viaRelationship
  • parentResource
  • polymorphic
  • formUniqueId
  • relatedResourceName
  • display: "attach"

更新附加

  • resourceName
  • resourceId
  • viaResource
  • viaResourceId
  • viaRelationship
  • parentResource
  • polymorphic
  • formUniqueId
  • relatedResourceName
  • relatedResourceId
  • viaPivotId
  • display: "updateAttached"

透镜

  • resourceName
  • lens
  • display: "lens

仪表板

  • resourceName: Dashboard Name
  • display: "dashboard"

许可证

Nova Resource Cards 是开源软件,采用 MIT许可证