2016-12-01 28 views
0

我有旅館模型如下:的foreach其中控制器laravel使用循環查詢構建器的結果5.3

class Hostel extends Model 
     { 
     //use Sortable; 
     public function block() 
     { 
     return $this->hasMany('App\Block'); 
     } 
    } 

class Block extends Model 
{ 
    // use Sortable; 
    public function hostel() 
    { 
     return $this->belongsTo('App\Hostel'); 
    } 
} 

我具有被從該視圖通過傳遞的變量$gender$capacity URL。在我的HostelContoller.php我試圖讓所有blocks的旅館列gender = $gender和這些blocks應該有列capacity = $capacity。這是我在HostelContoller.php

public function hostels($gender, $capacity) 
    { 
     $hostels = Hostel::where('gender', $gender)->get(); 
     foreach($hostels as $hostel) { 
      $blocks = Block::where('capacity', $capacity) 
          ->where('hostel_id', $hostel->id) 
          ->get(); 


     } 

     # Return the view 
     return view('student/booking', ['blocks' => $blocks]); 
    } 

都做在booking.php我有這樣的:

@foreach($blocks as $block) 
      <tr> 

      <td> {{ $block->hostel->name }}</td> 
      <td> {{ $block ->name}}</td> 

這僅顯示1個記錄出6條,我不知道我在哪裏丟失了。請幫忙!!!

+0

'$ hostel-> id'裏面有什麼? – claudios

+0

這是來自旅館表 –

回答

0

您每次循環都重寫$ blocks變量。你應該添加塊到這樣的$塊:

public function hostels($gender, $capacity) 
      { 
       $hostels = Hostel::where('gender', $gender)->get(); 
       $blocks = array(); 
       foreach($hostels as $hostel) { 
        $blocks[] = Block::where('capacity', $capacity) 
            ->where('hostel_id', $hostel->id) 
            ->get(); 
       } 

       # Return the view 
       return view('student/booking', ['blocks' => $blocks]); 
      } 
+0

的旅館的'ids'非常感謝。 –

相關問題