kraenkvisuell / nova-tabs
Laravel Nova - 标签页
v2.0.1
2020-08-27 16:01 UTC
Requires
- php: >=7.3.0
Requires (Dev)
- laravel/nova: ~3.0
- orchestra/testbench: ^5.3
- phpunit/phpunit: ^9.2
- dev-master
- v2.0.1
- v2.0.0
- 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-dependabot/npm_and_yarn/elliptic-6.5.3
- dev-dependabot/npm_and_yarn/lodash-4.17.19
- dev-dependabot/npm_and_yarn/websocket-extensions-0.1.4
- dev-feature-custom-scrollbar
This package is not auto-updated.
Last update: 2024-09-21 11:29:24 UTC
README
这是一个从 https://github.com/eminiarts/nova-tabs 分支出来的版本。所有关于这个包的功劳都归功于他们。
我们只是因为该仓库的开发似乎已经停止,并且我们需要进行一些紧急更改,所以我们才分叉了它。不过,我们打算维护这个包,当我们对其状态满意时,我们可能会将其放在 novapackages 上(作为另一个 Laravel Nova 标签页包)。
安装
您可以通过 composer 在使用 Nova 的 Laravel 应用中安装此包
composer require kraenkvisuell/nova-tabs
使用
标签面板
您可以将资源的字段分组到标签中。
// in app/Nova/Resource.php use Kraenkvisuell\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'), ], ]), ]; }
带工具栏的标签
如果您只使用标签而没有其他默认面板,可以将 withToolbar
设置为 true
。
// in app/Nova/Resource.php use Kraenkvisuell\Tabs\Tabs; public function fields(Request $request) { return [ (new Tabs('Contact Details', [ 'Address' => [ ID::make('Id', 'id')->rules('required'), Text::make('Email', 'email')->sortable(), Text::make('Phone', 'phone')->sortable(), ], 'Relations' => [ BelongsTo::make('User'), MorphTo::make('Contactable')->types([ Client::class, Invoice::class, ]), ] ]))->withToolbar(), ]; }
关系标签
您还可以将关系分组到标签中。请确保在您的 Nova 资源中使用 AvailableTabFields
特性。
// in app/Nova/Resource.php use Kraenkvisuell\Tabs\Tabs; class User extends Resource { public function fields(Request $request) { return [ new Tabs('Relations', [ HasMany::make('Invoices'), HasMany::make('Notes'), HasMany::make('Contacts') ]), ]; } }
在标签中组合字段和关系
use Kraenkvisuell\Tabs\Tabs; public function fields(Request $request) { return [ (new Tabs(__('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 Kraenkvisuell\Tabs\Tabs; use Kraenkvisuell\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 [ (new Tabs('Client Custom Details', [ 'Address' => [ ID::make('Id', 'id'), Text::make('Name', 'name')->hideFromDetail(), ], 'Invoices' => [ HasMany::make('Invoices'), ], 'Actions' => [ MorphMany::make(__('Actions'), 'actions', ActionResource::class), // Acc Actions whererver you like. ], ]))->withToolbar(), ]; } }
编辑视图中的标签
如果您想在编辑视图中显示标签,请在您的资源中使用 TabsOnEdit
特性。
// in app/Nova/Resource.php use Kraenkvisuell\Tabs\Tabs; use Kraenkvisuell\Tabs\TabsOnEdit; // Add this Trait class Client extends Resource { use TabsOnEdit; // Use this Trait //... }
自定义
默认情况下,标签组件将搜索输入和创建按钮移动到标签中。如果您有很多标签,可以将它们移动回自己的行
// in app/Nova/Resource.php use Kraenkvisuell\Tabs\Tabs; class User extends Resource { public function fields(Request $request) { return [ (new Tabs('Relations', [ HasMany::make('Invoices') ]))->defaultSearch(true), ]; } }
设置 ->defaultSearch(true)
以将其还原到默认状态。
升级到 1.0.0
感谢 dkulyk/nova-tabs,这个包变得更简单。
- 不再需要使用特性。从您的资源中删除所有
AvailableTabFields
特性。 - 所有内容都在
Tabs
中。不再有TabsPanel
。删除所有TabsPanels
并根据此 README 调整您的字段。