sheadawson / quickaddnew
此软件包最新版本(1.1.5)没有提供许可证信息。
用于管理对象关系的表单字段装饰器,允许通过对话框窗口动态添加新对象。它可以处理 has_one、has_many 或 many_many 关系。目前已在 DropdownField 和 ListboxField 上进行了测试/工作。它既适用于 CMS,也适用于前端。对于前端,建议使用 Select2Field 或 MultiSelect2Field。
1.1.5
2019-09-30 00:29 UTC
Requires
Replaces
- silverstripe/quickaddnew: *
README
这是什么?
用于管理对象关系的表单字段装饰器,允许通过对话框窗口动态添加新对象。它可以处理 has_one、has_many 或 many_many 关系。目前已在 DropdownField、ListboxField 和 CheckboxSetField 上进行了测试/工作。它既适用于 CMS,也适用于前端。对于前端,建议使用 Select2Field 或 MultiSelect2Field。
截图
需求
SilverStripe 3
用法
首先,在创建表单字段时,我们需要创建一个返回填充字段选项的源数组的闭包。我们这样做是因为稍后,当字段以新创建的对象 ID 作为其值刷新时,我们需要再次使用此函数来获取最新的源数据。
$source = function(){
return MyObject::get()->map()->toArray();
};
然后我们可以创建表单字段,将闭包作为源参数调用
$field = DropdownField::create('MyObjectID', 'My Object', $source());
接下来,我们可以告诉字段使用并配置 quickaddnew。第一个参数是要创建的对象的类名。第二个是 $source 闭包。注意:有关可用的配置参数列表,请参阅 QuickAddNewExtension::useAddNew()。这些允许您自定义对话框的字段和必填字段(用于验证)。默认情况下,使用对象类的 getAddNewFields() 或 getCMSFields() 方法
$field->useAddNew('MyObject', $source);
将字段添加到您的 FieldList
$fields->addFieldToTab('Root.Main', $field);