codenco-dev / nova-grid-system
Laravel Nova 工具,用于网格系统
Requires
- php: >=7.1.0
- laravel/nova: ^4.0
Requires (Dev)
- orchestra/testbench: v7.4.0
- phpunit/phpunit: ^9.5.10
README
# Laravel Nova 的网格系统
安装
您可以通过 composer 安装此包
composer require codenco-dev/nova-grid-system
然后,您需要在 NovaServiceProvider.php 中注册此工具
use CodencoDev\NovaGridSystem\NovaGridSystem;
/**
* Get the tools that should be listed in the Nova sidebar.
*
* @return array
*/
public function tools()
{
return [
//other tools
new NovaGridSystem
];
}
如何使用?
此包允许您使用 Tailwind CSS 类定义详细、更新或资源创建页面的字段大小。
例如:
您可以在您的字段上使用 size
方法为每个页面添加元属性。所有 Tailwind 流体大小类都可以使用。请参阅 https://tailwind.org.cn/docs/width/#fluid-width
在哪里使用:
如果您不想在每个页面上更改字段的大小,您可以使用方法来过滤效果
sizeOnCreating
sizeOnUpdating
sizeOnForms
sizeOnDetail
堆叠或非堆叠...
自动地,使用默认配置,字段标签是堆叠的。如果您不想这样,您可以使用 stacked
方法并使用参数值 false
。与前面的点一样,您可以在任何地方这样做
stackedOnCreating
stackedOnUpdating
stackedOnForms
stackedOnDetail
糟糕!底部有边框
在详情页上,Nova 自动移除最后一个字段的底部边框。在此包中,无法计算最后一个字段,因此您可以自己删除它。您可以使用这些方法
removeBottomBorderOnCreating
removeBottomBorderOnUpdating
removeBottomBorderOnForms
removeBottomBorderOnDetail
示例
此代码使用最简单的配置方法:
public function fields(Request $request)
{
return [
ID::make()->sortable(),
Gravatar::make()->maxWidth(50),
Text::make('Name')
->size('w-1/3')
->sortable()
->rules('required', 'max:255'),
Text::make('Email')
->size('w-1/3')
->sortable()
->rules('required', 'email', 'max:254')
->creationRules('unique:users,email')
->updateRules('unique:users,email,{{resourceId}}'),
Password::make('Password')
->size('w-1/3') // Only on forms, because we use onlyOnForms method with
->onlyOnForms()
->creationRules('required', 'string', 'min:8')
->updateRules('nullable', 'string', 'min:8'),
];
}
在上面的示例中,表单页面的大小是正确的,但在详情页面上不是。此代码根据上下文使用不同的方法展示了多种配置
/**
* Get the fields displayed by the resource.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function fields(Request $request)
{
return [
ID::make()->sortable(),
Gravatar::make()->maxWidth(50),
Text::make('Name')
->sizeOnDetail('w-1/2')
->stackedOnDetail(false)
->sizeOnForms('w-1/3')
->sortable()
->rules('required', 'max:255'),
Text::make('Email')
->sizeOnDetail('w-1/2')
->stackedOnDetail(false)
->sizeOnForms('w-1/3')
->sortable()
->rules('required', 'email', 'max:254')
->creationRules('unique:users,email')
->updateRules('unique:users,email,{{resourceId}}'),
Password::make('Password')
->size('w-1/3') // Only on forms, because we use onlyOnForms method with
->onlyOnForms()
->creationRules('required', 'string', 'min:8')
->updateRules('nullable', 'string', 'min:8'),
Date::make('Created At')
->hideWhenCreating()
->size('w-1/2')
->stacked(false)
->stackedOnForms(true)
->removeBottomBorderOnForms(),
Date::make('Updated At')
->hideWhenCreating()
->size('w-1/2')
->stacked(false)
->stackedOnForms(true)
->removeBottomBorderOnForms(),
Badge::make('Status 1', function () {
return 'info';
})->size('w-1/6')->removeBottomBorder(),
Badge::make('Status 2', function () {
return 'success';
})->size('w-1/6')->removeBottomBorder(),
Badge::make('Status 3', function () {
return 'warning';
})->size('w-1/6')->removeBottomBorder(),
Badge::make('Status 4', function () {
return 'info';
})->size('w-1/6')->removeBottomBorder(),
Badge::make('Status 5', function () {
return 'success';
})->size('w-1/6')->removeBottomBorder(),
Badge::make('Status 6', function () {
return 'warning';
})->size('w-1/6')->removeBottomBorder(),
];
}
与默认值玩耍
您想快速配置您的应用程序吗?使用 HasDefaultSize
特性,您可以使用定义的默认值。
您可以在想要使用默认值的每个资源中或如果在 App\Nova\Resource
文件中,您可以自动为每个资源设置默认值。
您可以以多种方式定义默认值:
- 通过在配置文件中定义它们
- 通过创建不同的方法,根据情况(详情、创建、更新)进行操作,如下所示
public function defaultFieldSize()
{
return 'w-1/8';
}
方法可以是:defaultFieldSize
、defaultFieldSizeOnDetail
、defaultFieldSizeOnCreating
、defaultFieldSizeOnUpdating
。
配置
您可以通过 nova-grid-system.php
配置文件禁用每种类型页面的每个“自动”功能。您可以为每个字段定义默认大小。要发布它,您可以使用此命令
php artisan vendor:publish --tag="nova-grid-system"
许可证
MIT 许可证 (MIT)。请参阅许可证文件以获取更多信息。
关于
此包受 Eduardo Geschonke 删除的包的启发 https://github.com/jobcerto