Magento 2属性图像多个

huus2vyu  于 2022-11-30  发布在  其他
关注(0)|答案(2)|浏览(119)

我有一个实体,该实体具有EAV属性图像,用于在业务对象中显示一个图像。此图像是我从API调用中获得的图像......没有什么特别的......但我希望对其进行修改,因为API将发送多个图像。因此,我希望能够保存所有这些图像并显示所有这些图像。最好的方法是什么?是否必须添加另一个属性?但是我最多只能收到10张图片...我该怎么做呢?第一次我想在我的实体中添加9个字段image 2 image 3 image 4等等...但是我认为有一种更有效的方法来保存和显示我的图片。
提前感谢您的帮助
(我是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/进行统计
如何在自定义属性中保存由逗号分隔的两个图像而不出现此问题

q3qa4bjr

q3qa4bjr1#

首先,您需要将图像保存到pub/media中,然后创建一个带有文本类型的属性,并将整个图像名称保存在该字段中(用','分隔),然后在显示时,您只需调用该字段中的数据,并使用函数剪切','后的数据,然后调用pub/media以获取特定的图像路径。

ctehm74n

ctehm74n2#

没关系,我已经将EAV属性类型从图像更改为文本,我没有这个错误。
谢谢

相关问题