marshmallow / nova-tabs
Laravel Nova - 标签页.
2.2.3
2022-10-25 19:58 UTC
Requires
- php: ^7.4|^8
- ext-json: *
- laravel/nova: ^4.12
- nova-kit/nova-packages-tool: ^1.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2
- orchestra/testbench: ^6
- roave/security-advisories: dev-latest
- dev-master
- 2.2.3
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.0
- v2.0.11
- v2.0.10
- 2.0.9
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- v1.x-dev
- 1.5.1
- 1.5.0
- 1.4.6
- 1.4.5
- 1.4.4
- 1.4.3
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.1
- 1.3.0
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.1
- 1.1.0
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.0
- 0.1.1
- 0.1.0
- 0.0.3
- 0.0.2
- 0.0.1
- dev-improved-frontend-building
- dev-feature/tabs-object
- dev-bugfix/multiple-tabs
- dev-feature/improved-tabs
- dev-bugfix/issue-23
- dev-nova-3.12-fix
- dev-feature-custom-scrollbar
This package is auto-updated.
Last update: 2024-09-08 20:25:49 UTC
README
要求
php: ^7.4 | ^8
laravel/nova: ^4
对于Laravel Nova 3版本,请使用nova-tabs v1。
安装
您可以通过composer在使用Nova的Laravel应用程序中安装此包。
composer require eminiarts/nova-tabs
用法
标签面板
您可以将资源的字段分组到标签中,您可以使用数组或标签对象(从1.4.0版本开始):
// in app/Nova/Resource.php use Eminiarts\Tabs\Traits\HasTabs; use Eminiarts\Tabs\Tabs; class User extends Resource { use HasTabs; public function fields(Request $request) { return [ new Tabs('Some Title', [ 'Balance' => [ Number::make('Balance', 'balance'), Number::make('Total', 'total'), ], 'Other Info' => [ Number::make('Paid To Date', 'paid_to_date'), ], ]), ]; } }
或
// in app/Nova/Resource.php use Eminiarts\Tabs\Traits\HasTabs; use Eminiarts\Tabs\Tabs; use Eminiarts\Tabs\Tab; class User extends Resource { use HasTabs; public function fields(Request $request) { return [ Tabs::make('Some Title', [ Tab::make('Balance', [ Number::make('Balance', 'balance'), Number::make('Total', 'total'), ]), Tab::make('Other Info', [ Number::make('Paid To Date', 'paid_to_date') ]), ]), ]; } }
每个
关系标签
这些有点过时,因为搜索和创建按钮现在显示在显示实际内容的面板下方,而不是在标签面板中。
// in app/Nova/Resource.php use Eminiarts\Tabs\Tabs; use Laravel\Nova\Fields\HasMany; use Eminiarts\Tabs\Traits\HasTabs; class User extends Resource { use HasTabs; public function fields(Request $request) { return [ Tabs::make('Relations', [ HasMany::make('Invoices'), HasMany::make('Notes'), HasMany::make('Contacts') ]), ]; } }
在标签中组合字段和关系
use Eminiarts\Tabs\Tabs; use Laravel\Nova\Fields\HasMany; use Eminiarts\Tabs\Traits\HasTabs; use Laravel\Nova\Fields\ID; use Laravel\Nova\Fields\Text; class User extends Resource { use HasTabs; public function fields(Request $request) { return [ Tabs::make(__('Client Custom Details'), [ new Panel(__('Details'), [ ID::make('Id', 'id')->rules('required')->hideFromIndex(), Text::make('Name', 'name'), ]), HasMany::make('Invoices') ]), ]; } }
标签中的操作
如果您的模型使用Laravel\Nova\Actions\Actionable
特性,您可以将操作放入一个标签中,如下所示
// in app/Nova/Resource.php use Eminiarts\Tabs\Tabs; use Eminiarts\Tabs\Tab; use Eminiarts\Tabs\Traits\HasTabs; use Eminiarts\Tabs\Traits\HasActionsInTabs; // Add this Trait use Laravel\Nova\Actions\ActionResource; // Import the Resource class Client extends Resource { use HasTabs; use ActionsInTabs; // Use this Trait public function fields(Request $request) { return [ Tabs::make('Client Custom Details', [ Tab::make('Address', [ ID::make('Id', 'id'), Text::make('Name', 'name')->hideFromDetail(), ]), Tab::make('Invoices', [ HasMany::make('Invoices'), ]), Tab::make('Actions', [ $this->actionfield(), // Add Actions whererver you like. ]), ]), ]; } }
编辑视图中的标签
截至Nova 4,标签始终显示在编辑视图中。
标签对象
从v1.4.0版本开始,您可以使用Tab
类代替数组来表示您的标签。
自定义
显示超过5个条目
默认情况下,任何HasMany
、BelongsToMany
和MorphMany
字段在其索引中显示5个条目。您可以使用Nova的内置静态属性$perPageViaRelationship
在相应的资源中显示更多(或更少)。
升级到2.0.0
- 破坏性更改
- 移除了selectFirstTab,第一个标签总是显示在最前面。
- 即使您有其他面板,标签也会始终显示在第一个位置,并具有工具栏。
- TabsOnEdit 已消失,并且非关系型标签将简单地始终在编辑时显示。
- 我没有使用dusk,因此也没有检查它的测试,它们可能已损坏。
- 添加了 Eminiarts\Tabs\Traits\HasTabs 以覆盖Laravel\Nova\ResolveFields中的Nova 4默认面板方法。
- 将 Eminiarts\Tabs\ActionsInTabs 移动到 Eminiaarts\Tabs\Traits\HasActionsInTabs。
- 为标签添加了位置方法,以修复关系型标签显示在最后的问题。
致谢
横幅是由 https://banners.beyondco.de/ 创建的