将图像添加到has_many关系将图像移动到资源文件夹

时间:2014-08-10 04:06:05

标签: orm content-management-system silverstripe

我正在尝试创建与对象关联的图像列表。使用DataExtension添加has_many关系。图像存储在Assets的子目录中,我使用cms中的sync folders按钮添加它们。但是,当我添加关系时,Image将被移动到assets目录。如何在不移动文件的情况下创建关系?为什么会这样?

class GroupExtension extends DataExtension
{
    private static $has_many = array('ImageGroup' => 'Image');

    function addImage($img)
    {
        $this->owner->ImageGroup()->add($img);
        $this->owner->write();
        $img->write();
    }
}

1 个答案:

答案 0 :(得分:0)

您应该使用$many_many关系。

$has_many仅在$has_one上有关联的Image时有效,虽然原则上您可以使用Image的子类执行此操作,但在实践中使用$many_many会更好。

如果您使用$many_many,则无法进行$img->write()来电。