我想知道如何自定义此uploadfield从$ belongs_many_many Act表获得。Silverstripe:var从many_many关系自定义上传
代码的一部分....
<?
class MultipleBlock extends DataObject {
private static $db = array(
'Act' => 'Varchar',
private static $many_many = array(
'MultipleBlockColumns' => 'MultipleBlockColumn'
);
}
class MultipleBlockColumn extends DataObject {
static $belongs_many_many = array(
'MultipleBlocks' => 'MultipleBlock'
);
private static $has_one = array(
'Image' => 'Image',
);
$fields->addFieldToTab('Root.Image',$uploadField = new UploadField(
$name = 'Image',
$title = 'Image'
)
);
enter code here
$uploadField->setFolderName('Uploads/Subsite'.Subsite::currentSubsiteID().'/images/'.$var);
}
我曾尝试这些方法来获取变量法,但没有出现:
$var=$this->Parent->MultipleBlocks->Act;
$var=$this->many_many(MultipleBlocks)->Act;
$var=$this->Parent->Act;
任何想法? 在此先感谢!
php示例仅显示如何遍历块并访问“Act”变量。它不处理任何东西在模板/布局中呈现它。 – muskie9
如果我明白...这是不可能的。但是,如果关系有很多并且有一个,那么你认为我可以用$ this-> MultipleBlocksID-> Act获得表变量Act吗?对模板没有变化,而是对上传字段进行了自定义。 – StefGuev
如果您的MultipleBlock has_many MultipleBlockColumns和has_one以其他方式执行,那么您可以执行'$ yourMultipleBlockColumns-> MultipleBlockRelationName() - > Act'来获取该变量。我已经更新了我的上述答案,以显示如何更完整地完成此操作。 – muskie9