简体   繁体   中英

How to pass array from controller to view (Laravel 5)?

My array ($response_array) is like this :

Array
(
    [Auth] => Array
        (
            [UserID] => test
            [UserIP] => 123
            [XmlVersion] => Testing Version
        )

    [SearchAvailRequest] => Array
        (
            [CountryCd] => ID
            [CityCd] => JOG
            [CheckIn] => 2016-01-08
            [CheckOut] => 2016-01-09
        )

    [SearchAvailResponse] => Array
        (
            [Hotel] => Array
                (
                    [0] => Array
                        (
                            [HotelNo] => 1
                            [HotelCode] => 321
                            [HotelName] => Test 1 Hotel
                            [RmGrade] => Deluxe
                            [RmGradeCode] => DLX
                        )

                    [1] => Array
                        (
                            [HotelNo] => 2
                            [HotelCode] => 212
                            [HotelName] => Test 2 & 1 Hotel
                            [RmGrade] => Deluxe
                            [RmGradeCode] => DLX
                        )

                )

        )

)

I want to send the hotel data to view

So the view display data like this :

Hotel Name
Room Type

I try like this :

Controller :

...
return view('frontend.hotel.main_list_hotel',[
                                'hotel' => $response_array
            ]);
...

View :

@foreach($hotel as $key=>$value)
{{ $key }}
{{ $value }}                     
@endforeach

But, there exist error like this :

htmlentities() expects parameter 1 to be string, array given (View: C:\xampp\htdocs...

Any suggestions on how I can solve this problem?

Thank you very much

If you want to iterate through hotels you need to iterate through $response_array['SearchAvailResponse']['Hotel'] , not just $response_array .

Try passing hotel parameter as the following:

return view('frontend.hotel.main_list_hotel',[
  'hotel' => $response_array['SearchAvailResponse']['Hotel']
]);

And then in your view:

@foreach($hotel as $key=>$value)
{{ $key }}
{{ $value['HotelNo'] }}                     
@endforeach

You should try this . Here $value is also array

@foreach($hotel as $key=>$value)
{{ $key }}
{{ $value['HotelNo'] }}                     
@endforeach

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM