Magento 2属性图像倍数
Magento 2 attribute image multiple
我有一个具有 EAV 属性图像的实体,可以在 BO 中显示一张图像。
此图像是我从 API 电话中获得的图像...没什么特别的...
但我想修改它,因为 API 会发送几张图片。
所以我希望有可能保存所有这些图像并显示所有这些图像。
最好的方法是什么?
我必须添加另一个属性吗?
?但是因为我最多可以接收 10 张图像...我该怎么做?
第一次我想在我的实体中添加 9 字段 image2 image3 image4 等...但我认为有一种方法可以更有效地保存和显示我的图像。
在此先感谢您的帮助
(我是 magento 2 的初学者)
这是我的控制器从 API
获取照片后保存照片的一部分
case 'mainPhoto':
if (
is_array($retailerData['mainPhoto']) &&
isset($retailerData['mainPhoto']['publicUrl'])
) {
$imageUrl = $retailerData['mainPhoto']['publicUrl'];
$fileName = baseName($imageUrl);
$newFileName = $this->getMediaSellerPath() . DIRECTORY_SEPARATOR . $fileName;
$result = $this->file->read($imageUrl, $newFileName);
if ($result) {
$model->setMediaPath($fileName);
}
}
break;
case 'photos':
$test = [];
foreach ($value as $key => $item) {
if (
is_array($item) &&
isset($item['publicUrl'])
) {
$imageUrl = $item['publicUrl'];
$fileName = baseName($imageUrl);
$newFileName = $this->getMediaSellerPath() . DIRECTORY_SEPARATOR . $fileName;
$test[] = $newFileName;
$result = $this->file->read($imageUrl, $newFileName);
if ($result) {
$model->setCustomAttribute(RetailerAttributeInterface::PHOTOS, implode(",", $test));
}
}
}
break;
}
实际上我可以在数据库中保存用逗号分隔的照片但是当我进入模块时出现错误
无法收集统计数据!警告!stat():统计失败 /var/www/xxx/pub/media/seller/medium_lRmMjKLDWV.jpg,medium_vyhkzfEhho.jpg
如何在自定义属性中保存以逗号分隔的 2 张图片而不出现此问题
首先需要将图片保存到pub/media,然后创建一个文本类型的属性并将整个图片名称保存在该字段中(彼此之间用','分隔)然后当显示你只需要调用这个字段中的数据,并使用函数将','后面的数据剪切,然后调用pub/media得到具体的图片路径。
没关系,我已将我的 EAV 属性类型从图像更改为文本,我没有出现此错误。
谢谢
我有一个具有 EAV 属性图像的实体,可以在 BO 中显示一张图像。 此图像是我从 API 电话中获得的图像...没什么特别的... 但我想修改它,因为 API 会发送几张图片。 所以我希望有可能保存所有这些图像并显示所有这些图像。 最好的方法是什么? 我必须添加另一个属性吗? ?但是因为我最多可以接收 10 张图像...我该怎么做? 第一次我想在我的实体中添加 9 字段 image2 image3 image4 等...但我认为有一种方法可以更有效地保存和显示我的图像。
在此先感谢您的帮助
(我是 magento 2 的初学者)
这是我的控制器从 API
获取照片后保存照片的一部分 case 'mainPhoto':
if (
is_array($retailerData['mainPhoto']) &&
isset($retailerData['mainPhoto']['publicUrl'])
) {
$imageUrl = $retailerData['mainPhoto']['publicUrl'];
$fileName = baseName($imageUrl);
$newFileName = $this->getMediaSellerPath() . DIRECTORY_SEPARATOR . $fileName;
$result = $this->file->read($imageUrl, $newFileName);
if ($result) {
$model->setMediaPath($fileName);
}
}
break;
case 'photos':
$test = [];
foreach ($value as $key => $item) {
if (
is_array($item) &&
isset($item['publicUrl'])
) {
$imageUrl = $item['publicUrl'];
$fileName = baseName($imageUrl);
$newFileName = $this->getMediaSellerPath() . DIRECTORY_SEPARATOR . $fileName;
$test[] = $newFileName;
$result = $this->file->read($imageUrl, $newFileName);
if ($result) {
$model->setCustomAttribute(RetailerAttributeInterface::PHOTOS, implode(",", $test));
}
}
}
break;
}
实际上我可以在数据库中保存用逗号分隔的照片但是当我进入模块时出现错误
无法收集统计数据!警告!stat():统计失败 /var/www/xxx/pub/media/seller/medium_lRmMjKLDWV.jpg,medium_vyhkzfEhho.jpg
如何在自定义属性中保存以逗号分隔的 2 张图片而不出现此问题
首先需要将图片保存到pub/media,然后创建一个文本类型的属性并将整个图片名称保存在该字段中(彼此之间用','分隔)然后当显示你只需要调用这个字段中的数据,并使用函数将','后面的数据剪切,然后调用pub/media得到具体的图片路径。
没关系,我已将我的 EAV 属性类型从图像更改为文本,我没有出现此错误。
谢谢