norman-huth/nova-resource-card
Composer 安装命令:
composer require norman-huth/nova-resource-card
包简介
A Laravel Nova card.
README 文档
README
This repository is archived and no longer maintained.
If you offer, maintain, or know of an actively maintained alternative to this project, please contact me at maintainers@huth.it.
If the alternative references this repository as its source, inspiration, predecessor, or migration path, I may list it here so existing users can find a maintained replacement.
Nova Resource Card
With this package You can use Nova Resources Index as Card.
(For example on the Dashboard or other Nova resource)
Limitations:
- No search
- No pagination
- No actions
- No cards
Examples from example-app-nvpRt7
This package will certainly be extended in the course of time. Watch this package for Updates.
For suggestions and wishes
please create an issue.
Install
composer require norman-huth/nova-resource-card
Usage
This usage examples use the Laravel Nova User resource class as example.
Add Nova Resource Card To A Dashboard
use NormanHuth\NovaResourceCard\NovaResourceCard; class Main extends Dashboard { /** * Get the cards for the dashboard. * * @return array */ public function cards(): array { return [ new NovaResourceCard(\App\Nova\Resources\User::class) ]; } }
Add Nova Resource Card To A Other Nova Resource
use NormanHuth\NovaResourceCard\NovaResourceCard; class User extends Resource { /** * Get the cards available for the request. * * @param NovaRequest $request * @return array */ public function cards(NovaRequest $request): array { return [ new NovaResourceCard(\App\Nova\Resources\User::class), ]; } }
Card Methods
Activate Footer Link To The Resource Index
Use the setFooterLinkLabel method.
(new NovaResourceCard(\App\Nova\Resources\User::class))->setFooterLinkLabel(__('To All Users'))
Use A Other Nova Resource As Footer Link Target
Use the setFooterLinkResource method.
(new NovaResourceCard(\App\Nova\Resources\User::class)) ->setFooterLinkLabel(__('Go To Orders')) ->setFooterLinkResource(\App\Nova\Resources\Order::class)
Use A External Url For Footer Link
Use the setFooterLinkExternalUrl method.
(new NovaResourceCard(\App\Nova\Resources\User::class)) ->setFooterLinkLabel(__('Visit Website')) ->setFooterLinkExternalUrl('https://huth.it')
Set Detail Link Resource
By default, this package generate the detail link by Resource::$model, so that you can use several resources for one model without any effort.
Use the setDetailLinkResource method.
(new NovaResourceCard(\App\Nova\Resources\User::class)) ->setDetailLinkResource(\App\Nova\Resources\Order::class)
Set Card Width
Use the width method.
#[ExpectedValues(values: ['full', '1/3', '1/2', '1/4', '2/3', '3/4'])]
(new NovaResourceCard(\App\Nova\Resources\User::class))->width('1/2')
Add Classes To Card Element
Use the addCardClasses method.
(new NovaResourceCard(\App\Nova\Resources\User::class))->addCardClasses(['bg-white', 'dark:bg-gray-800']) (new NovaResourceCard(\App\Nova\Resources\User::class))->addCardClasses('bg-white dark:bg-gray-800')
Add Classes To Resource Heading
Use the addResourceHeadingClasses method.
(new NovaResourceCard(\App\Nova\Resources\User::class))->addResourceHeadingClasses(['bg-white', 'dark:bg-gray-800']) (new NovaResourceCard(\App\Nova\Resources\User::class))->addResourceHeadingClasses('bg-white dark:bg-gray-800')
Add Classes To Resource IndexErrorDialog
Use the addResourceIndexErrorDialogClasses method.
(new NovaResourceCard(\App\Nova\Resources\User::class))->addResourceIndexErrorDialogClasses(['my-class', 'p-2']) (new NovaResourceCard(\App\Nova\Resources\User::class))->addResourceIndexErrorDialogClasses('my-class p-2'')
Add Classes To Resource IndexEmptyDialog
Use the addResourceIndexEmptyDialogClasses method.
(new NovaResourceCard(\App\Nova\Resources\User::class))->addResourceIndexEmptyDialogClasses(['my-class', 'p-2']) (new NovaResourceCard(\App\Nova\Resources\User::class))->addResourceIndexEmptyDialogClasses('my-class p-2'')
Add Classes To Resource ResourceTable
Use the addResourceResourceTableClasses method.
(new NovaResourceCard(\App\Nova\Resources\User::class))->addResourceResourceTableClasses(['my-class', 'p-2']) (new NovaResourceCard(\App\Nova\Resources\User::class))->addResourceResourceTableClasses('my-class p-2'')
Advanced Usage
Create your own Nova resource to customize it even more.
You should set $globallySearchable to false so that this resource is not included in the global search.
(See: Disabling Global Search For A Resource)
Examples Resource from example-app-nvpRt7
class CardUser extends Resource { /** * The model the resource corresponds to. * * @var string */ public static string $model = \App\Models\User::class; /** * Indicates if the resource should be globally searchable. * * @var bool */ public static $globallySearchable = false; /** * Get the displayable label of the resource. * * @return string */ public static function label(): string { return __('Latest Users'); } /** * The pagination per-page options configured for this resource. * * @return array */ public static $perPageOptions = [5]; /** * Build an "index" query for the given resource. * * @param NovaRequest $request * @param \Illuminate\Database\Eloquent\Builder $query * @return \Illuminate\Database\Eloquent\Builder */ public static function indexQuery(NovaRequest $request, $query): \Illuminate\Database\Eloquent\Builder { return $query->orderByDesc('created_at'); } /** * Get the fields displayed by the resource. * * @param NovaRequest $request * @return array */ public function fields(NovaRequest $request): array { return [ ID::make()->sortable(), Text::make(__('Name'), 'name'), ]; } /** * Determine if the current user can delete the given resource. * * @param \Illuminate\Http\Request $request * @return bool */ public function authorizedToDelete(Request $request): bool { return false; } /** * Determine if the current user can restore the given resource. * * @param \Illuminate\Http\Request $request * @return bool */ public function authorizedToRestore(Request $request): bool { return false; } /** * Determine if the current user can update the given resource. * * @param \Illuminate\Http\Request $request * @return bool */ public function authorizedToUpdate(Request $request): bool { return false; } /** * Determine if the current user can force delete the given resource. * * @param \Illuminate\Http\Request $request * @return bool */ public function authorizedToForceDelete(Request $request): bool { return false; } /** * Determine if the current user can replicate the given resource or throw an exception. * * @param \Illuminate\Http\Request $request * @return bool */ public function authorizeToReplicate(Request $request): bool { return false; } // ...
norman-huth/nova-resource-card 适用场景与选型建议
norman-huth/nova-resource-card 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 21.27k 次下载、GitHub Stars 达 6, 最近一次更新时间为 2023 年 04 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「nova」 「laravel」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 norman-huth/nova-resource-card 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 norman-huth/nova-resource-card 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 norman-huth/nova-resource-card 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A Laravel Nova card that shows you your system information.
A Laravel Nova card.
A Laravel Nova package for publishable fields
A Laravel Nova package for translatable fields
A Laravel Nova Image field. you can paste or drag or chose an image
A Laravel Nova Mail testing tool.
统计信息
- 总下载量: 21.27k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 6
- 点击次数: 11
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-04-09


