How to pass array from controller to view (Laravel

2019-04-16 08:06发布

问题:

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

回答1:

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


回答2:

You should try this . Here $value is also array

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