unclecheese / silverstripe-serialised-dbfields
提供可遍历为嵌套 ViewableData 对象的文本字段中的序列化数据(YAML、JSON)。
dev-master
2019-02-18 20:44 UTC
Requires
- silverstripe/framework: ~3.1
- symfony/yaml: ^3
Suggests
- nathancox/codeeditorfield: Provides a robust code editor for editing your serialised data in the CMS
This package is auto-updated.
Last update: 2024-08-29 04:19:53 UTC
README
提供可遍历为嵌套 ViewableData 对象的文本字段中的序列化数据(YAML、JSON)。
安装
composer require unclecheese/silverstripe-serialised-dbfields
推荐附加组件
如果您计划在 CMS 中编辑序列化数据,您可能需要安装 CodeEditorField。
composer require nathancox/codeeditorfield
数据库字段已设置为在可用时自动搭建 CodeEditorField
。
使用方法
mysite/code/MyPageType.php
class MyPageType extends Page { private static $db = [ 'MyJSONData' => 'JSONField', 'MyYAMLData' => 'YAMLField' ]; public function getCMSFields() { $fields = parent::getCMSFields(); $fields->addFieldToTab('Root.JSONData', CodeEditorField::create('MyJSONData') ->setMode('json') ); $fields->addFieldToTab('Root.YAMLData', CodeEditorField::create('MyYAMLData') ->setMode('yaml') ); return $fields; } }
$MyJSONData
{ "Category": "Lollies", "BannerImage": "/path/to/image.png", "Products": [ { "Title": "Snake", "Colour": "Red" }, { "Title": "Jet plane", "Colour": "Purple" } ] }
themes/mytheme/templates/Layout/MyPageType.ss
<% with $MyJSONData %> Category: $Category<br> <img src="$BannerImage"><br> <ul> $Products.count total products <% loop $Products %> <li>$Title ($Colour)</li> <% end_loop %> </ul> <% end_with %>
转换
默认情况下,所有标量值都将回退到 ViewableData
(文本)的 $default_cast
设置。要自定义转换,请在字段值中使用 |
符号。
Price: Currency|20.00 StartDate: Date|2016-01-01
测试
framework/sake dev/tests/SerialisedDBFeildsTest
故障排除
联系 Uncle Cheese。