我们有一个对象,它有两个字段 - 一个是 Text
,另一个是HTMLText
:
private static $db = [
'Question' => 'Varchar(255)',
'Answer' => 'HTMLText'
];
我们在 Gridfield
中引用这个对象使用DataColumns
:
$questionsGrid = GridField::create(
'Questions', 'Questions',
$this->Questions(),
GridFieldConfig_RelationEditor::create()
);
$dataColumns = $questionsGrid->
getConfig()->getComponentByType(GridFieldDataColumns::class);
$dataColumns->setDisplayFields([
'Question' => 'Question',
'Answer' => 'Answer'
]);
$dataColumns->setFieldCasting([
'Question' => 'Text',
'Answer' => 'HTMLText'
]);
然而Answer
列显示为原始 HTML - 带有可见标签且无格式。
<p>The answer to life the universe & everything is 42.</p><p>A second paragraph for good measure.</p>
我们如何显示Answer
列是否采用 HTML 格式?
最佳答案
您可以对该列使用'HTMLFragment->RAW'
$dataColumns->setFieldCasting([
'Question' => 'Text',
'Answer' => 'HTMLFragment->RAW'
]);
关于silverstripe - 如何在 Silverstripe 4 的 GridField DataColumn 中显示格式化的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57750764/