razorcreations / ajax-field
为 Laravel Nova 提供的具有 AJAX 功能的可搜索字段。
1.1.0
2022-05-11 12:11 UTC
Requires
- php: ^7.3|^8.0
- laravel/nova: ^4.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-11 17:10:14 UTC
README
安装
composer require razorcreations/ajax-field
为了支持 Nova 3,请使用
composer require razorcreations/ajax-field@0.3.2
用法
// Inside your resources fields definition AjaxField::make('Foo')->setUrl('/api/ajaxselect/foo'), // If you are using integers or floats for the values ensure to chain on the type methods... AjaxField::make('Foo')->setUrl('/api/ajaxselect/foo')->typeInt(),
该字段期望 AJAX 调用的响应以以下格式的 JSON 数组返回选项
[ { "label": "Bob", "value": 1, }, { "label": "Jenny", "value": 2, } ]
如果您希望,可以使用以下方法覆盖默认的 "value" 和 "label" 键
AjaxField::make('Foo')->setUrl('/api/ajaxselect/foo')->setValueKey('id')->setLabelKey('name'),
您可以通过添加具有 nova 字段键的父方法来传递另一个 Nova 字段值
// Create a parent field Text::make('Foo', 'foo'); // Create ajax field, with parent method AjaxField::make('Bar')->setUrl('/api/ajaxselect/foo')->parent('foo'),
这将向 AjaxUrl 发送字段键值对附加为 get 参数的请求,例如 /api/ajaxselect/foo?foo=value
而不是在页面加载时一次性加载选项,您可以使用 ->responsive() 在输入值变化时传递字段值
AjaxField::make('Foo')->setUrl('/api/ajaxselect/foo')->responsive(),
贡献
如果您想贡献,请分支项目并提交一个 PR。
编码标准
composer run fix
自动修复任何 PHP linting 问题composer run lint
显示任何 PHP linting 问题npm run fix
自动修复任何 JS/Vue linting 问题npm run lint
显示任何 JS/Vue linting 问题