在laravel 4中的Foreach控制器在视图中渲染

时间:2013-11-05 18:13:00

标签: php database laravel laravel-4

我正在为我的网络应用程序编写预订系统 我用Controller_r获得了我想要的输出 不幸的是,我无法在我的视图中获得正确的输出。

$userId = Sentry::getUser()->id;
$my_garden = DB::select('select * from gardens where userId = ?',array($userId));
foreach($my_garden as $garden)
{
   $gardenId = $garden->id;
   $address = $garden->address;
   $bookings_in_my_garden = Garden::find($gardenId)->booking;
   print_r($address.'<br>');
   foreach($bookings_in_my_garden as $bookings)
   {
       print_r($bookings->dateFrom." - ".$bookings->dateTo.'<br>');
    }
}

我得到的输出是
Predikerinnenstraat 10
2013-11-05 - 2013-11-12
Prinsenstraat 2
2013-11-30 - 2013-12-07
2013-11-20 - 2013-11-27
并且是正确的 但是,当我把它传递给我的观点时:

return View::make('admin.booking.index')
->with('my_garden',$my_garden)
->with('bookings_in_my_garden',$bookings_in_my_garden);

并致电

@foreach($my_garden as $garden)
    <tr>
       <td>{{ $garden->id }}</td>
           @foreach($bookings_in_my_garden as $bookings)
                <td>{{ $bookings->dateFrom }}</td>
                <td></td>
                <td></td>
            @endforeach
        <td>{{ $garden->address }}</td>
        <td></td>
     </tr>
 @endforeach

我最终得到了 2 2013-11-30 2013-11-20 Predikerinnenstraat 10
8 2013-11-30 2013-11-20 Prinsenstraat 2

谁可以帮助我?

1 个答案:

答案 0 :(得分:1)

您只是在最后一次预订时转到了您的视图。

你有一些选择,这里有两个:

1)在它们之间创建Eloquent Relationship,以便您可以在视图中

@foreach($my_garden as $garden)
    <tr>
       <td>{{ $garden->id }}</td>
           @foreach($garden->bookings as $booking)
                <td>{{ $booking->dateFrom }}</td>
                <td></td>
                <td></td>
            @endforeach
        <td>{{ $garden->address }}</td>
        <td></td>
     </tr>
@endforeach

2)将它们全部存储在控制器中的数组中并传递给您的视图。