SilverStripe Fluent模块似乎自动转换了DataExtension中的所有字段。要禁用它,我必须使用:private static $translate = 'none';。
这很奇怪,因为当涉及到DataObjects时,它的工作方式正好相反:没有什么是自动翻译的,只有您明确告诉要翻译的字段。
是否有可能禁用SS模块的自动翻译行为?了解流利的其他内容自动翻译也会很有趣。
发布于 2016-05-12 05:33:14
仅仅是基于巴里的答案;Fluent不翻译扩展,它会翻译DataObjects,默认情况下,它会自动转换数据对象上与Fluent.data_include规则匹配的字段。将其看作是将字段推入数据对象本身的扩展,而非扩展本身,而非扩展本身。
您遇到的问题是自动转换行为,其中没有定义translate。您可以按照Barry的答案来解决单个对象的问题。
如果要全局禁用所有自动字段转换,可以将值从Fluent.data_include复制到Fluent.data_exclude。此列表中的字段类型将不包括本地化(即使在Fluent.data_include中)。
---
Name: myfluentconfig
After: '#fluentconfig'
---
Fluent:
data_exclude:
- 'Text'
- 'Varchar'
- 'HTMLText'
- 'HTMLVarchar'这意味着,如果您有如下数据对象(或扩展),它将不会被自动翻译。
class MyObject extends DataObject {
private static $db = [
'Name' => 'Text'
];
}发布于 2016-04-27 10:48:38
在密码里..。
在silverstripe中,可以在代码中设置任何静态数组,所以可以将其添加到_confip.php中。
Config::inst()->update('MyDataObject', 'translate',<SET ME HERE>);...will工作确保设置所需的值!
如果你想在config.yml中添加同样的东西.
MyDataObject:
translate:
- 'FieldOne'
- 'SomeOtherField'...this在https://github.com/tractorcow/silverstripe-fluent/blob/master/docs/en/configuration.md中有更详细的介绍。
https://stackoverflow.com/questions/36887328
复制相似问题