razorcreations/ajax-field

为 Laravel Nova 提供的具有 AJAX 功能的可搜索字段。

1.1.0 2022-05-11 12:11 UTC

README

Latest Stable Version Total Downloads Latest Unstable Version License

Preview

安装

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 问题