如何将数组变量从控制器传递到视图(Laravel 5)


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

我的数组($response_array)是这样的:

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
                        )
                )
        )
)

我想发送酒店数据以供查看

所以视图显示的数据是这样的:

Hotel Name
Check In
Check Out
City

我尝试这样:

控制器:

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

视图:

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

我得到酒店号码和酒店名称

如何办理入住手续,退房,城市和国家?

关于如何解决这个问题的任何建议?

谢谢

您可以传递 SearchAvailRequest 数组,方式与传递SearchAvailResponse数组的方式相同:

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

你可以做这样的事情

return view('frontend.hotel.main_list_hotel', [
    'availability' => [
        'checkIn' => $response_array['SearchAvailRequest']['CheckIn'],
        'checkOut' => $response_array['SearchAvailRequest']['CheckOut'],
        'city' => $response_array['SearchAvailRequest']['CityCd'],
        'country' => $response_array['SearchAvailRequest']['CountryCd'],
        'hotels' => $response_array['SearchAvailResponse']['Hotel'],
    ]
]);

为什么不试试with() Laravel方法呢?

return view('frontend.hotel.main_list_hotel')->with(compact(response_array['SearchAvailResponse']['Hotel']));

所有数据都发送到查看,您可以使用:

{{ $response_array['SearchAvailResponse']['Hotel'] }}

在边栏选项卡模板中。