Orm 将图像添加到“有多个关系”会将图像移动到“资源”文件夹
我正在尝试创建一个与对象关联的图像列表。使用DataExtension添加有许多关系。这些图像存储在资产的子目录中,我使用cms中的“同步文件夹”按钮添加它们。但是,当我添加关系时,图像会移动到assets目录。如何在不移动文件的情况下创建关系?为什么会发生这种情况Orm 将图像添加到“有多个关系”会将图像移动到“资源”文件夹,orm,content-management-system,silverstripe,Orm,Content Management System,Silverstripe,我正在尝试创建一个与对象关联的图像列表。使用DataExtension添加有许多关系。这些图像存储在资产的子目录中,我使用cms中的“同步文件夹”按钮添加它们。但是,当我添加关系时,图像会移动到assets目录。如何在不移动文件的情况下创建关系?为什么会发生这种情况 class GroupExtension extends DataExtension { private static $has_many = array('ImageGroup' => 'Image');
class GroupExtension extends DataExtension
{
private static $has_many = array('ImageGroup' => 'Image');
function addImage($img)
{
$this->owner->ImageGroup()->add($img);
$this->owner->write();
$img->write();
}
}
为此,您应该使用$many\u-many关系
$has\u many仅在图像上有关联的$has\u one时才起作用,虽然原则上您可以使用图像的子类来实现这一点,但实际上使用$many\u many会更好
如果您使用$many\u many,则不需要$img->write调用。这里的罪魁祸首很可能是$img->write;查看此函数内部是否存在任何目录操作,例如将文件存储在默认目录中。如果是这种情况,请确保在调用此write函数之前将图像设置为保存在指定的子目录中。