Нажмите foreach, чтобы foreach массив - PullRequest
0 голосов
/ 19 сентября 2018

Не уверен, как поставить заголовок, но у меня есть следующий foreach в Laravel:

foreach ($properties as $key => $property) {
            $data['items'][$key] = [
                'id' => $property->id,
                'street' => $property->street,
                'zipcode' => $property->zipcode,
                'city' => $property->city->name,
                'type' => $property->type->name,
                'interior' => $property->interior->type,
                'bedrooms' => $property->bedrooms,
                'year' => $property->year,
                'surface' => $property->surface,
                'available' => $property->available,
                'rent' => $property->rent,
                'service_costs' => $property->service_costs,
                'deposit' => $property->deposit,
                'text_nl' => $property->leader_text,
                'office' => $property->office->name,
                'images' => [

                    // all images for the current property here!

                ],
            ];


   }

Мне также нужно перебрать 'изображения', потому что свойство может иметь несколько изображений.К сожалению, приведенный ниже код не работает, он просто присоединяет изображения из последнего свойства.

foreach ($property->property_images as $key => $image) {

            $data['items']['images'][$key] = [

                'id' => $image->id,
            ];

        }

Я пробовал кое-что с array_map, но не могу понять это.Любая помощь в этом, пожалуйста?

1 Ответ

0 голосов
/ 19 сентября 2018

Добавьте это foreach() в свой первый foreach()

foreach ($property->property_images as $image) {// remove $key from here,not needed
        $data['items'][$key]['images'][] = [
            'id' => $image->id,
        ];
    }

Так что код должен быть: -

foreach ($properties as $key => $property) {
    $data['items'][$key] = [
        'id' => $property->id,
        'street' => $property->street,
        'zipcode' => $property->zipcode,
        'city' => $property->city->name,
        'type' => $property->type->name,
        'interior' => $property->interior->type,
        'bedrooms' => $property->bedrooms,
        'year' => $property->year,
        'surface' => $property->surface,
        'available' => $property->available,
        'rent' => $property->rent,
        'service_costs' => $property->service_costs,
        'deposit' => $property->deposit,
        'text_nl' => $property->leader_text,
        'office' => $property->office->name,
    ];
    foreach ($property->property_images as $image) {
        $data['items'][$key]['images'][] = [
            'id' => $image->id,
        ];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...