goldfinch / fielder
Fielder 是 Silverstripe 的字段管理器和组织器
Requires
- php: >=8.0
- goldfinch/illuminate: ^2.0
- silverstripe/admin: ^2.0
- silverstripe/framework: ^5.0
This package is auto-updated.
Last update: 2024-09-19 00:34:43 UTC
README
Fielder 🚜 是一个字段组织器,它可以帮助简化字段声明,并使所有管理在一个地方变得容易,同时保持代码简洁。
安装
composer require goldfinch/fielder
使用方法
在 DataObject
的 CMS 字段中使用 Fielder
use SilverStripe\ORM\DataObject; MyAwesomeModel extends DataObject { public function getCMSFields() { $fields = parent::getSettingsFields()->initFielder($this); $fielder = $fields->getFielder(); $fielder->remove('Content'); $fielder->required([ 'FirstName', 'About', ]); $fielder->fields([ 'Root.Main' => [ $fielder->string('FirstName', 'First name'), $fielder->text('About'), $fielder->html('Content'), ], 'Root.Demo' => [ $fielder->string('Headline'), ], ]); return $fields; } }
在 SiteTree
的设置字段中使用 Fielder
use SilverStripe\CMS\Model\SiteTree; MyAwesomePage extends SiteTree { public function getSettingsFields() { $fields = parent::getSettingsFields()->initFielder($this); $fielder = $fields->getFielder(); $fielder->remove('ShowInMenus'); return $fields; } }
Fielder 有自己的验证方法来简化验证过程(见验证方法)。但是,默认的 SS 验证方法仍然可以呈现,并会与之一起调用。
use SilverStripe\ORM\DataObject; MyAwesomeModel extends DataObject { public function getCMSFields() { $fields = parent::getSettingsFields()->initFielder($this); $fielder = $fields->getFielder(); // fielder validation $fielder->validate([ 'Email' => 'required|email' ]); return $fields; } // default SS validation public function validate() { $result = parent::validate(); if ($this->Title != 'Home') { $result->addError('Title is invalid'); } return $result; } }
扩展中的 Fielder
use SilverStripe\ORM\DataExtension; class MyExtension extends DataExtension { public function updateCMSFields($fields) { $fields->initFielder($this->owner); $fielder = $fields->getFielder(); $fielder->validate([ 'Email' => 'required|email', ]); } public function updateSettingsFields($fields) { $fields->initFielder($this->owner); $fielder = $fields->getFielder(); $fielder->remove('ShowInMenus'); } }
可用方法列表
在标签页中声明字段
$fielder->fields([ 'Root.Main' => [ $fielder->string('Title'), ], ])
删除先前声明的字段来声明字段
$fielder->freshFields([ 'Root.Main' => [ $fielder->string('Title'), ], ])
插入到之后
$fielder->insertAfter('MenuTitle', $fielder->string('Title')); $fielder->insertAfter('MenuTitle', [ $fielder->string('Title'), $fielder->text('Content'), ]);
插入到之前
$fielder->insertBefore('MenuTitle', $fielder->string('Title')); $fielder->insertBefore('MenuTitle', [ $fielder->string('Title'), $fielder->text('Content'), ]);
重新排序字段
$fielder->reorder(['Content', 'MenuTitle']);
重新排序标签页
$fielder->reorderTabs([ 'Root.Demo', 'Root.Main' ]);
将字段添加到标签页
$fielder->toTab('Root.Demo', [ $fielder->string('Title'), $fielder->text('Content'), ]);
获取数据字段,与
dataFieldByName
相同
$fielder->dataField('Title');
获取字段,与
scaffoldFormField
相同
$fielder->field('Title');
必填字段
$fielder->required('Title') $fielder->required(['Title', 'Content']); //through validate method (recommended) $fielder->validate([ 'Title' => 'required', ]);
删除特定字段
$fielder->remove('Title');
删除所有字段
$fielder->removeAll();
删除类中的所有字段(忽略通过继承或扩展类添加的字段)
$fielder->removeAllCurrent();
删除标签页中的字段
$fielder->removeFieldsInTab('Root.Main'); // same as $fielder->clearTab('Root.Main');
添加描述字段
$fielder->description('Title', 'Some field description flies here'); // .. $fielder->description([ 'Title' => 'Some field description flies here', 'URLSegment' => '<strong style="color: red">Red field description</strong>' ]);
禁用字段
$fielder->disable('Title'); $fielder->disable('Title', false); // undisabled // .. $fielder->disable(['Title', 'Text']); $fielder->disable(['Title', 'Text'], false); // undisabled all
只读字段
$fielder->readonly('Title'); $fielder->readonly('Title', false); // take off readonly // .. $fielder->readonly(['Title', 'Text']); $fielder->readonly(['Title', 'Text'], false); // take off readonly
添加自定义错误
$fielder->addError('Error message'); // error | required | bad | validation $fielder->addError('Error message', 'info'); $fielder->addError('Error message', 'warning'); $fielder->addError('Error message', 'message'); $fielder->addError('<strong>Error</strong> message', 'good', null, 'html');
验证字段
每个字段的简单闭包验证
$fielder->validate([ 'Title' => function($value, $fail) { $max = 100; if (strlen($value) > $max) { $fail('The :attribute must not be over ' . $max . ' characters.'); } } ]);
Laravel 方法(推荐)
此包附带可立即使用的 Laravel 验证组件。有关可用规则及其使用方法的更多信息,请参阅此列表
use Goldfinch\Illuminate\Rule; $fielder->validate([ 'Title' => 'required|regex:/^[\d\s\+\-]+$/', 'Email' => 'required|email', 'Fruits' => ['required', Rule::in(['apple', 'orange', 'kiwi'])], ]);
您还可以创建自定义规则来处理特定的验证逻辑。使用 Taz🌪️ 创建新规则。
例如
php taz make:rule PhoneRule
并在您的验证规则中简单实现它
use App\Rules\PhoneRule; $fielder->validate([ 'Phone' => ['required', new PhoneRule()], ]);
显示逻辑方法
基本覆盖,并非所有功能都可用。
$fielder->displayIf(); $fielder->displayUnless(); $fielder->hideIf(); $fielder->hideUnless();
示例
$fielder->toTab('Root.Demo', [ $fielder->checkbox('ConditionalField'), $fielder->displayIf('ConditionalField', [ // isChecked // $fielder->displayIf('!Magic', [ // isNotChecked // $fielder->displayIf(['MagicString', '==', null], [ // isEmpty // $fielder->displayIf(['MagicString', '!=', null], [ // isNotEmpty // $fielder->displayIf(['MagicString', '==', 3], [ // isEqualTo // $fielder->displayIf(['MagicString', '==', [2,3]], [ // isEqualTo // $fielder->displayIf(['MagicString', '!=', 3], [ // isNotEqualTo // $fielder->displayIf(['MagicString', '!=', [2,3]], [ // isNotEqualTo // $fielder->displayIf(['MagicString', '>', 3], [ // isGreaterThan // $fielder->displayIf(['MagicString', '<', 3], [ // isLessThan $fielder->string('Field1'), $fielder->string('Field2'), $fielder->string('Field3'), ]) ]);
可用字段列表
✳️ 通用字段
复选框
复选框字段
类: SilverStripe\Forms\CheckboxField
适合的数据库类型: Boolean
$fielder->checkbox($name, $title = null, $value = null) // left aligned checkbox (wrapped in composite field) $fielder->lineCheckbox($name, $title = null, $value = null)
下拉列表
下拉字段
类: SilverStripe\Forms\DropdownField
适合的数据库类型: *
$fielder->dropdown($name, $title = null, $source = [], $value = null)
只读
只读字段
类: SilverStripe\Forms\ReadonlyField
适合的数据库类型: *
$fielder->readonlyField($name, $title = null, $value = null)
文本
文本区域字段
类: SilverStripe\Forms\TextareaField
适合的数据库类型: *
$fielder->text($name, $title = null, $value = null)
字符串
文本字段
类: SilverStripe\Forms\TextField
适合的数据库类型: Varchar
$fielder->string($name, $title = null, $value = '', $maxLength = null, $form = null)
密码
密码字段
类: SilverStripe\Forms\PasswordField
适合的数据库类型: Varchar
$fielder->password($name, $title = null, $value = '')
操作
操作字段
类: SilverStripe\Forms\FormAction
$fielder->action($action, $title = '', $form = null)
密码确认
密码确认字段
类: SilverStripe\Forms\ConfirmedPasswordField
适合的数据库类型: *
$fielder->passwordConfirmed($name, $title = null, $value = '', $form = null, $showOnClick = false, $titleConfirmField = null)
货币
货币字段
类: SilverStripe\Forms\CurrencyField
适合的数据库类型: Currency
$fielder->currency($name, $title = null, $value = '', $maxLength = null, $form = null)
日期
日期字段
类: SilverStripe\Forms\DateField
适合的数据库类型: Date
$fielder->date($name, $title = null, $value = '', $maxLength = null, $form = null)
日期时间
日期时间字段
类: SilverStripe\Forms\DatetimeField
适合的数据库类型: Datetime
$fielder->datetime($name, $title = null, $value = '', $maxLength = null, $form = null)
电子邮件
电子邮件字段
类: SilverStripe\Forms\EmailField
适合的数据库类型: Varchar
$fielder->email($name, $title = null, $value = '', $maxLength = null, $form = null)
分组下拉列表
分组下拉字段
类: SilverStripe\Forms\GroupedDropdownField
适合的数据库类型: *
$fielder-> groupedDropdown($name, $title = null, $source = [], $value = null) // .. $fielder->groupedDropdown('Name', 'Title', [ 'numbers' => [1 => 1, 2 => 2], 'letters' => [1 => 'A', 2 => 'B'], ]) // $source = FooBar::get()->map()
HTML
HTML 编辑器字段
类: SilverStripe\Forms\HTMLEditor\HTMLEditorField
适合的数据库类型: HTMLText
$fielder->html($name, $title = null, $value = '', $config = null)
金钱
金钱字段
类: SilverStripe\Forms\MoneyField
适合的数据库类型: Money
$fielder->money($name, $title = null, $value = '')
数字
数字字段
类: SilverStripe\Forms\NumericField
适合的数据库类型: Decimal
Float
Int
$fielder->numeric($name, $title = null, $value = '', $maxLength = null, $form = null)
单选按钮
单选按钮字段
类: SilverStripe\Forms\OptionsetField
适合的数据库类型: *
$fielder->radio($name, $title = null, $source = [], $value = null) // .. $fielder->radio('Name', 'Title', [1 => 'Option 1', 2 => 'Option 2']) // $source = FooBar::get()->map()
选择组
选择组字段
类: SilverStripe\Forms\SelectionGroup
适合的数据库类型: *
$fielder->selectionGroup($name, $items, $value = null) // .. $fielder->selectionGroup('Name', [ $fielder->selectionGroupItem( 'one', $fielder->literal('one', 'one view'), 'one title' ), $fielder->selectionGroupItem( 'two', $fielder->literal('two', 'two view'), 'two title' ), ])
时间
时间字段
类: SilverStripe\Forms\TimeField
适合的数据库类型: Time
$fielder->time($name, $title = null, $value = '', $maxLength = null, $form = null)
✳️ 结构字段
组合
组合字段
类: SilverStripe\Forms\CompositeField
$fielder->composite($children = null) // .. $fielder->composite([ $fielder->string('Title'), $fielder->html('Text'), ])
分组
分组字段
类: SilverStripe\Forms\FieldGroup
$fielder->group($titleOrField = null, ...$otherFields) // .. $fielder->group( 'Group name', $fielder->string('Title'), $fielder->html('Text'), )
列表
列表字段。注意:$fields 已是 FieldList。使用此字段我们将在 FieldList 中存储新的 FieldList
类: SilverStripe\Forms\FieldList
$fielder->list($items = []) // .. ...$fielder->list([ $fielder->string('Title'), $fielder->html('Text'), ])
标签页
标签页字段
类: SilverStripe\Forms\Tab
$fielder->tab($name, $titleOrField = null, $fields = null) // .. $fielder->tab('Primary tab', $fielder->header('Header'), $fielder->literal('Literal', '<b>Br</b>eaking <b>Ba</b>d'))
标签集合
标签集合字段
类: SilverStripe\Forms\TabSet
$fielder->tabSet($name, $titleOrTab = null, $tabs = null) // .. $fielder->tabSet('MyTabSetName', $fielder->tab('Primary tab', $fielder->header('Header'), $fielder->literal('Literal', '<b>Br</b>eaking <b>Ba</b>d')), $fielder->tab('Secondary tab', $fielder->header('Header'), $fielder->literal('Literal', '<b>Banshee</b>')), )
切换组合
切换组合字段
类: SilverStripe\Forms\ToggleCompositeField
$fielder->toggleComposite($name, $title, $children) // .. $fielder->toggleComposite('MyToggle', 'Toggle', [ $fielder->string('Title'), $fielder->text('Text') ])
✳️ 文件字段
上传
上传字段
类: SilverStripe\AssetAdmin\Forms\UploadField
适合的关系: has_one
has_many
many_many
belongs_many_many
$fielder->upload($name, $title = null, SS_List $items = null)
文件
文件字段
类: SilverStripe\Forms\FileField
适合的关系: has_one
has_many
many_many
belongs_many_many
$fielder->file($name, $title = null, $value = null)
✳️ 关系字段
复选框集合
复选框集合字段
类: SilverStripe\Forms\CheckboxSetField
适合的关系: has_many
many_many
belongs_many_many
$fielder->checkboxSet($name, $title = null, $source = [], $value = null) // .. $fielder->checkboxSet('List', 'List', [1 => 'Set 1', 2 => 'Set 2']), // $source = FooBar::get()->map()
下拉树
下拉树字段 (!SiteTree)
类: SilverStripe\Forms\TreeDropdownField
适合的关系: has_one
$fielder->dropdownTree($name, $title = null, $sourceObject = null, $keyField = 'ID', $labelField = 'TreeTitle', $showSearch = true) // .. $fielder->dropdownTree('Page')
树多选
树多选字段,仅适用于
SilverStripe\Security\Group
类: SilverStripe\Forms\TreeMultiselectField
适合的关系: has_many
many_many
$fielder->treeMultiSelect($name, $title = null, $sourceObject = Group::class, $keyField = "ID", $labelField = "Title")
网格
网格字段
类: SilverStripe\Forms\GridField\GridField
Goldfinch\Fielder\Grid
适合的关系: has_many
many_many
belongs_many_many
$fielder->grid($name, $title = null, SS_List $dataList = null, GridFieldConfig $config = null) // .. $fielder->grid('Services', 'Services')->build() // .. $fielder->grid('Services', 'Services', $this->Services())->build() // .. $fielder->grid('Cards', 'Cards') ->config('default') ->components([ 'add', 'edit', ]) ->remove([ 'add', 'edit', 'copy', 'delete', ])->build()
- 可能需要额外的包
列表框
列表框字段
类: SilverStripe\Forms\ListboxField
适合的关系: has_many
many_many
belongs_many_many
$fielder->listbox($name, $title = null, $source = [], $value = null, $size = null)
✳️ 工具字段
标题
标题字段
类: use SilverStripe\Forms\HeaderField;
$fielder->header($name, $title = null, $headingLevel = 2)
隐藏
隐藏字段
类: SilverStripe\Forms\HiddenField
适合的数据库类型: *
$fielder->hidden($name, $title = null, $value = null)
标签
标签字段
类: SilverStripe\Forms\LabelField
$fielder->label($name, $title = null)
文本
文本字段
类: SilverStripe\Forms\LiteralField
$fielder->literal($name, $content)
可空
可空字段
类: SilverStripe\Forms\NullableField
适合的数据库类型: *
$fielder->nullable(FormField $valueField, $isNullLabel = null) // .. $fielder->nullable($fielder->string('Text'))
小数
小数(数据库)字段
类: SilverStripe\ORM\FieldType\DBDecimal
适合的数据库类型: Decimal
$fielder->decimal($name, $title = null, $wholeSize = 9, $decimalSize = 2, $defaultValue = 0)
双精度
双精度(数据库)字段
类: SilverStripe\ORM\FieldType\DBDouble
适合的数据库类型: Double
$fielder->double($name, $title = null, $defaultVal = 0)
浮点数
浮点数(数据库)字段
类: SilverStripe\ORM\FieldType\DBFloat
适合的数据库类型: Float
$fielder->float($name, $title = null, $defaultVal = 0)
年
年(数据库)字段
类: SilverStripe\ORM\FieldType\DBYear
适合的数据库类型: Year
$fielder->year($name, $title = null, $options = [])
百分比
百分比(数据库)字段
类: SilverStripe\ORM\FieldType\DBPercentage
适合的数据库类型: Percentage | Percentage(6)
$fielder->percentage($name, $title = null, $precision = 4)
整数
整数(数据库)字段
类: SilverStripe\ORM\FieldType\DBInt
适合的数据库类型: Int
$fielder->int($name, $title = null, $defaultVal = 0)
大整数
大整数(数据库)字段
类: SilverStripe\ORM\FieldType\DBBigInt
适合的数据库类型: BigInt
$fielder->bigInt($name, $title = null, $defaultVal = 0)
地区
地区(数据库)字段
类: SilverStripe\ORM\FieldType\DBLocale
适合的数据库类型: Locale
$fielder->locale($name, $title = null, $size = 16)
枚举
枚举(数据库)字段
类: SilverStripe\ORM\FieldType\DBEnum
适合的数据库类型: Enum("Apple,Orange,Kiwi", "Kiwi")
$fielder->enum($name)
siteTreeURLSegment
SiteTreeURLSegment 字段
类: SilverStripe\CMS\Forms\SiteTreeURLSegmentField
适合的数据库类型: *
$fielder->siteTreeURLSegment($name, $title = null, $value = '', $maxLength = null, $form = null)
htmlReadonly
HTMLReadonly 字段
类: SilverStripe\Forms\HTMLReadonlyField
适合的数据库类型: *
$fielder->htmlReadonly($name, $title = null, $value = null)
✳️ 外部字段
shortcode
composer require goldfinch/shortcode
Shortcode 字段(字符串)
合适的数据库类型: SCVarchar
$fielder->shortcode($name, $title = null)
objectLink
composer require silvershop/silverstripe-hasonefield dev-main
HasOneButton 字段
类: SilverShop\HasOneField\HasOneButtonField
合适的关联关系: has_one
belongs_to
$fielder->objectLink($relationName, $fieldName = null, $title = null, GridFieldConfig $customConfig = null, $useAutocompleter = true)
object
composer require gorriecoe/silverstripe-linkfield ^1.1
HasOneLink 字段
类: gorriecoe\LinkField\Forms\HasOneLinkField
合适的关联关系: has_one
belongs_to
$fielder->object($relationName, $title = null, $linkConfig = [], $useAutocompleter = false)
multiSelect
composer require kinglozzer/multiselectfield ^2.0
MultiSelect 字段
类: Kinglozzer\MultiSelectField\Forms\MultiSelectField
合适的关联关系: many_many
belongs_many_many
$fielder->multiSelect($name, $title = null, $sort = false, $source = null, $titleField = 'Title') // .. $fielder->multiSelect('Services'), $fielder->multiSelect('Services', 'Services', 'SortExtra'),
media
composer require goldfinch/image-editor
可编辑上传字段
类: Goldfinch\ImageEditor\Forms\EditableUploadField
适合的关系: has_one
has_many
many_many
belongs_many_many
...$fielder->media($name, $title = null)
mediaSortable
composer require goldfinch/image-editor
可编辑排序上传字段
类: Goldfinch\ImageEditor\Forms\EditableSortableUploadField
适合的关系: has_many
many_many
belongs_many_many
...$fielder->mediaSortable($name, $title = null)
color
composer require heyday/silverstripe-colorpalette ^2.1
调色板字段
类: Heyday\ColorPalette\Fields\ColorPaletteField
适合的数据库类型: *
$fielder->color($name, $title = null, $source = [], $value = null) // .. $fielder->color('Color', 'Color', ['yellow' => '#fee12f', 'pink' => '#eb83ad', 'green' => '#70cd77'])
colorPicker
composer require ryanpotter/silverstripe-color-field ^1.0
颜色字段
类: RyanPotter\SilverStripeColorField\Forms\ColorField
适合的数据库类型: *
$fielder->colorPicker($name, $title = null, $value = '', $form = null)
其他要求
# yml config (example) RyanPotter\SilverStripeColorField\Forms\ColorField: colors: - '#1976D2' - '#2196F3'
colorGroup
composer require heyday/silverstripe-colorpalette ^2.1
分组调色板字段
类: Heyday\ColorPalette\Fields\GroupedColorPaletteField
适合的数据库类型: *
$fielder->colorGroup($name, $title = null, $source = [], $value = null) // .. $fielder->colorGroup('Color', 'Color', ['Primary' => ['yellow' => '#fee12f', 'pink' => '#eb83ad'], 'Secondary' => ['green' => '#70cd77']])
json
composer require goldfinch/json-editor
JSON编辑器字段
类: Goldfinch\JSONEditor\Forms\JSONEditorField
合适的数据库类型: JSONText
Goldfinch\JSONEditor\ORM\FieldType\DBJSONText::class
$fielder->json($name, $title = null, $options = [], $value = '{}', $form = null, $schema = '{}')
其他要求
-
创建模式文件:
app/_schema/Page-Parameters.json
(app/_schema/{parent-classname}-{field-name}.json) -
示例模式文件
{ "type": "array", "options": {}, "items": { "type": "object", "properties": { "example": { "title": "Example", "type": "string", "default": "default example text" } } } }
- 示例字段
$fielder->json('Parameters')
video
composer require goldfinch/video-field
视频字段
类: Goldfinch\VideoField\Forms\VideoField
合适的数据库类型: Video
$fielder->video($name, $title = null, $value = '', $static = false)
参见: github.com/goldfinch/video-field
place
composer require goldfinch/google-fields
位置字段
类: Goldfinch\GoogleFields\Forms\PlaceField
合适的数据库类型: Place
$fielder->place($name, $title = null, $value = '')
其他要求
.env
APP_GOOGLE_MAPS_KEY=''
参见: github.com/goldfinch/google-fields
map
composer require goldfinch/google-fields
地图字段
类: Goldfinch\GoogleFields\Forms\MapField
合适的数据库类型: Map
$fielder->map($name, $title = null, $value = '')
其他要求
.env
APP_GOOGLE_MAPS_KEY=''
参见: github.com/goldfinch/google-fields
link
composer require maxime-rainville/anyfield ^0.0.0
复选框字段
类: SilverStripe\AnyField\Form\AnyField
合适的关联关系: has_one
关系类型: SilverStripe\LinkField\Models\Link::class
模板: vendor/silverstripe/linkfield/templates/SilverStripe/LinkField/Models/Link.ss
$fielder->link($name, $title = null, $value = null)
links
composer require maxime-rainville/anyfield ^0.0.0
ManyAny 字段
类: SilverStripe\AnyField\Form\ManyAnyField
合适的关联关系: has_many
many_many
belongs_many_many
关系类型: SilverStripe\LinkField\Models\Link::class
$fielder->links($name, $title = null, SS_List $dataList = null)
其他要求
在 SilverStripe\LinkField\Models\Link 上需要 $has_one
例如
private static $has_one = [ 'Page' => \Page::class, ];
linkSS
composer require silverstripe/linkfield ^3
链接字段
类: SilverStripe\LinkField\Form\LinkField
合适的关联关系: has_many
many_many
belongs_many_many
关系类型: SilverStripe\LinkField\Models\Link::class
$fielder->linkSS($name, $title = null, $value = null)
linkRel(额外链接字段)
composer require gorriecoe/silverstripe-linkfield ^1.1
链接字段
类: gorriecoe\LinkField\LinkField
合适的关联关系: has_one
关系类型: gorriecoe\Link\Models\Link::class
$fielder->linkRel($name, $title = null, $linkConfig = []) // .. $fielder->linkRel('ALink', 'Link')
code
composer require kevingroeger/codeeditorfield ^1.2
代码编辑器字段
类: KevinGroeger\CodeEditorField\Forms\CodeEditorField
适合的数据库类型: *
$fielder->code($name, $title = null, $value = null, $mode = 'ace/mode/html', $theme = 'ace/theme/github')
tag
composer require silverstripe/tagfield ^3.0
标签字段
类: SilverStripe\TagField\TagField
适合的关系: has_many
many_many
belongs_many_many
$fielder->tag($name, $title = null, $source = [], $value = null, $titleField = 'Title')
points
composer require goldfinch/silverstripe-image-points
点字段
类: LittleGiant\SilverStripeImagePoints\DataObjects\Point
适合的关系: has_many
many_many
belongs_many_many
$fielder->points($name, $title = null, $source = [], $gridconfig = null)
其他要求
- model
use LittleGiant\SilverStripeImagePoints\DataObjects\Point; use SilverStripe\Assets\Image; private static $has_one = [ 'Image' => Image::class, ]; private static $has_many = [ 'ImagePoints' => Point::class . '.PointOf', ]; private static $owns = [ 'Image', ];
- yml 配置
LittleGiant\SilverStripeImagePoints\DataObjects\Point: image_width: 1918 image_height: 822
- 示例字段
$fielder->points('ImagePoints')
wrapper
composer require unclecheese/display-logic
包装器字段
类: UncleCheese\DisplayLogic\Forms\Wrapper
$fielder->wrapper($children)
autocomplete
composer require tractorcow/silverstripe-autocomplete ^5.0
自动完成字段
类: TractorCow\AutoComplete\AutoCompleteField
适合的数据库类型: *
$fielder->autocomplete($name, $title = null, $value = '', $sourceClass = null, $sourceFields = null) // .. $fielder->autocomplete('Page', 'Page', '', Page::class, 'Title')
stringTag
composer require silverstripe/tagfield ^3.0
StringTag 字段
类: SilverStripe\TagField\StringTagField
适合的数据库类型: *
$fielder->stringTag($name, $title = null, $source = [], $value = null) // .. $fielder->stringTag('Varchar', 'Varchar', MyDataObject::get())
imageCoords
composer require goldfinch/image-editor
ImageCoords 字段
类: Goldfinch\ImageEditor\Forms\ImageCoordsField
适合的关系: has_one
$fielder->imageCoords($name, $title, $onlyCanvas = false, $cssGrid = false, $image = null, $XFieldName = null, $YFieldName = null, $xySumFieldName = null, $width = null, $height = null) // .. $fielder->imageCoords('Image', 'Focus Point', true) $fielder->imageCoords('Image', 'Focus Point')
encrypt
composer require lekoala/silverstripe-encrypt dev-master
加密字段
类: LeKoala\Encrypt\EncryptHelper
合适的数据库类型
'MyText' => LeKoala\Encrypt\EncryptedDBText::class,
'MyHTMLText' => LeKoala\Encrypt\EncryptedDBHTMLText::class,
'MyVarchar' => LeKoala\Encrypt\EncryptedDBVarchar::class,
'MyNumber' => LeKoala\Encrypt\EncryptedNumberField::class,
'MyIndexedVarchar' => LeKoala\Encrypt\EncryptedDBField::class,
$fielder->encrypt($name)
country
composer require dynamic/silverstripe-country-dropdown-field ^2.0
国家下拉字段
类: Dynamic\CountryDropdownField\Fields\CountryDropdownField
适合的数据库类型: *
$fielder->country($name, $title = null, $source = [], $value = '', $form = null)
icon
composer require goldfinch/icon-field
图标字段
类: Goldfinch\IconField\Forms\IconField
合适的数据库类型: Icon
Goldfinch\IconField\ORM\FieldType\DBIcon::class
$fielder->icon($set, $name, $title = null, $value = '')
其他要求
设置 .yml 配置 github.com/goldfinch/icon-field
phone
composer require innoweb/silverstripe-international-phone-number-field dev-master
电话(数据库)字段
类: Innoweb\InternationalPhoneNumberField\ORM\DBPhone
合适的数据库类型: Phone
$fielder->phone($name, $title = null, $options = [])
模板输出
$Phone.International $Phone.National $Phone.E164 $Phone.RFC3966 $Phone.URL
<% if Phone %> <% with Phone %> <a href="$URL" title="$International">$National</a> <% end_with %> <% end_if %>
mediaSelect
composer require goldfinch/silverstripe-imageselection-field
电话(数据库)字段
类: NSWDPC\Forms\ImageSelectionField\ImageSelectionField
合适的关联关系
'Image' => Image::class, 'Images' => Image::class,
$fielder->mediaSelect($name, $relationList, $title = null) // .. $fielder->mediaSelect('Image', 'Images')
模板输出
$Phone.International $Phone.National $Phone.E164 $Phone.RFC3966 $Phone.URL
许可证
MIT许可证(MIT)