chiwex / nova-tabss
Laravel Nova - 标签页.
1.4.4
2021-03-29 19:05 UTC
Requires
- php: >=7.1.3
- ext-json: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.17
- orchestra/testbench: ^6.7
- dev-master
- 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-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-29 05:56:30 UTC
README
安装
您可以通过composer将此包安装到使用Nova的Laravel应用程序中
composer require eminiarts/nova-tabs
用法
标签面板
您可以将资源字段分组到标签页中,您可以使用数组或标签对象(自1.4.0版起):
// in app/Nova/Resource.php use Eminiarts\Tabs\Tabs; public function fields() { return [ new Tabs('Tabs', [ '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\Tabs; use Eminiarts\Tabs\Tab; public function fields() { return [ Tabs::make('Tabs', [ Tab::make('Balance', [ Number::make('Balance', 'balance'), Number::make('Total', 'total'), ]), Tab::make('Other Info', [ Number::make('Paid To Date', 'paid_to_date') ]), ]), ]; }
带工具栏的标签页
如果您只使用标签页而没有其他默认面板,可以将withToolbar
设置为true
。
// in app/Nova/Resource.php use Eminiarts\Tabs\Tabs; use Eminiarts\Tabs\Tab; public function fields(Request $request) { return [ Tabs::make('Contact Details', [ Tab::make('Address', [ ID::make('Id', 'id')->rules('required'), Text::make('Email', 'email')->sortable(), Text::make('Phone', 'phone')->sortable(), ]), Tab::make('Relations', [ BelongsTo::make('User'), MorphTo::make('Contactable')->types([ Client::class, Invoice::class, ]), ]), ])->withToolbar(), ]; }
关系标签页
// in app/Nova/Resource.php use Eminiarts\Tabs\Tabs; class User extends Resource { public function fields(Request $request) { return [ Tabs::make('Relations', [ HasMany::make('Invoices'), HasMany::make('Notes'), HasMany::make('Contacts') ]), ]; } }
在标签页中组合字段和关系
use Eminiarts\Tabs\Tabs; 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\ActionsInTabs; // Add this Trait use Laravel\Nova\Actions\ActionResource; // Import the Resource class Client extends Resource { 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. ]), ])->withToolbar(), ]; } }
编辑视图中的标签页
如果您想在编辑视图中显示标签页,请在您的资源中使用TabsOnEdit
特性。
// in app/Nova/Resource.php use Eminiarts\Tabs\Tabs; use Eminiarts\Tabs\TabsOnEdit; // Add this Trait class Client extends Resource { use TabsOnEdit; // Use this Trait //... }
标签对象
自v1.4.0版起,可以使用Tab
类代替数组来表示您的标签页。
自定义
默认搜索
默认情况下,标签组件会将搜索输入和创建按钮移动到标签页中。如果您有很多标签页,可以将它们移回到自己的行。
// in app/Nova/Resource.php use Eminiarts\Tabs\Tabs; class User extends Resource { public function fields(Request $request) { return [ Tabs::make('Relations', [ HasMany::make('Invoices') ])->defaultSearch(true), ]; } }
将->defaultSearch(true)
设置为恢复到默认设置。
显示超过5个项目
默认情况下,任何HasMany
、BelongsToMany
和MorphMany
字段在它们的索引中显示5个项目。您可以使用Nova的内置静态属性$perPageViaRelationship
在相应的资源中显示更多(或更少)。
升级到1.0.0
感谢dkulyk/nova-tabs,这个包变得更加简单。
- 不再需要使用特性。请从您的资源中删除所有
AvailableTabFields
特性。 - 现在所有内容都在
Tabs
中。不再有TabsPanel
。请删除所有TabsPanels
并根据此README调整您的字段。