Skip to content

Commit f112da4

Browse files
authored
Merge pull request #2829 from aragon999/fix/loop-null-coalescing
fix: Looping of data by reference with null coalescing
2 parents ee22fe2 + 95dcdb1 commit f112da4

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

engine/Shopware/Controllers/Backend/Article.php

+15-3
Original file line numberDiff line numberDiff line change
@@ -4055,8 +4055,12 @@ protected function prepareSimilarAssociatedData($data, $article)
40554055
*/
40564056
protected function prepareImageAssociatedData($data)
40574057
{
4058+
if (!isset($data['images']) || !\is_array($data['images']) || \count($data['images']) === 0) {
4059+
return $data;
4060+
}
4061+
40584062
$position = 1;
4059-
foreach ($data['images'] ?? [] as &$imageData) {
4063+
foreach ($data['images'] as &$imageData) {
40604064
$imageData['position'] = $position;
40614065
if (!empty($imageData['mediaId'])) {
40624066
$media = $this->get('models')->find(Media::class, $imageData['mediaId']);
@@ -4140,7 +4144,11 @@ protected function preparePricesAssociatedData($prices, $article, $tax)
41404144
*/
41414145
protected function prepareLinkAssociatedData($data)
41424146
{
4143-
foreach ($data['links'] ?? [] as &$linkData) {
4147+
if (!isset($data['links']) || !\is_array($data['links']) || \count($data['links']) === 0) {
4148+
return $data;
4149+
}
4150+
4151+
foreach ($data['links'] as &$linkData) {
41444152
$linkData['link'] = trim($linkData['link']);
41454153
// Map the boolean ExtJS link target to the string format which used in the database
41464154
$linkData['target'] = ($linkData['target'] === true) ? '_blank' : '_parent';
@@ -4158,8 +4166,12 @@ protected function prepareLinkAssociatedData($data)
41584166
*/
41594167
protected function prepareDownloadAssociatedData($data)
41604168
{
4169+
if (!isset($data['downloads']) || !\is_array($data['downloads']) || \count($data['downloads']) === 0) {
4170+
return $data;
4171+
}
4172+
41614173
$mediaService = Shopware()->Container()->get(MediaServiceInterface::class);
4162-
foreach ($data['downloads'] ?? [] as &$downloadData) {
4174+
foreach ($data['downloads'] as &$downloadData) {
41634175
$downloadData['file'] = $mediaService->normalize($downloadData['file']);
41644176
}
41654177

0 commit comments

Comments
 (0)