2
我有TestimonialBlocks之间的many_many关系< - >褒奖,定义为:返回所有者字段
class TestimonialBlockSlice extends ContentSlice
{
private static $db = array (
'IconColour' => 'Enum("White,Blue,Green,Orange","Green")'
);
private static $many_many = array(
'Testimonials' => 'Testimonial'
);
private static $many_many_extraFields = array(
'Testimonials' => array('SortOrder' => 'Int')
);
public function getCMSFields()
{
$fields = parent::getCMSFields();
$config = GridFieldConfig_RelationEditor::create()
->removeComponentsByType('GridFieldDeleteAction')
->addComponents(new GridFieldDeleteAction('unlinkrelation'));
$config->getComponentByType('GridFieldDataColumns')->setDisplayFields(array(
'Text'=> 'Text',
'Author'=> 'Author'
));
$testimonialsField = new GridField(
'Testimonials',
'Testimonial',
$this->Testimonials(),
$config
);
$fields->addFieldToTab('Root.Main', $testimonialsField);
return $fields;
}
}
class Testimonial extends DataObject {
private static $db = array(
'Text' => 'Text',
'Author' => 'Varchar(255)'
);
private static $belongs_many_many = array(
'TestimonialBlocks' => 'TestimonialBlockSlice'
);
private static $summary_fields = array(
'Text' => 'Text',
'Author' => 'Author'
);
}
一切正常,但在模板我不能得到的的$ IconColour包含TestimonialBlockSlice ...我试过了我能想到的一切。我做这样的事情:
<% loop Testimonials.Limit(2) %>
<div class="testimonial">
<div class="icon-quote"><img src="/themes/images/icon-quote-{ ##getIconColourHere## }.png"></div>
<div class="testimonial-text">$Text</div>
<div class="testimonial-author">$Author</div>
</div>
<% end_loop %>
TestimonialBlockSlice延伸全盛/ silverstripe切片,其中ContentSlice是一个数据对象。 有关如何引用此特定TestimonialBlockSlice的IconColour的任何想法?帮助非常感谢:)
感谢罗比,多数民众赞成的第一件事我试过:)不过之一,在这不起作用案例... – galilee
只是注意到我用IconColor - 编辑显示IconColour –