簡體   English   中英

Laravel 4-使用雄辯的選擇列表中的未定義變量

[英]Laravel 4 - Undefined variable in select list using Eloquent

我正在努力查看為什么我的選擇列表返回錯誤。

我有一個嵌套的foreach循環,第二個循環應按building_id顯示記錄。 但是正是這個id,它為($ building-> id)返回一個未定義的變量

是錯誤的查詢的構造嗎?

<select>
     @foreach (Building::orderBy('title')->get() as $building)
          <optgroup label="{{ $building->title }}"></optgroup>
           @foreach (Floor::whereIn('id', function($query){
                 $query->select('floor_id')
                   ->from('rooms')
                   ->where('building_id', $building->id)->distinct();
                   })->get() as $floor)
            <option value="{{ $floor->id }}">{{ $floor->description }}</option>
           @endforeach    
     @endforeach
</select>

像這樣嘗試

  ....
  @foreach (Floor::whereIn('id', function($query) use ($building){
  ...

您正在使用傳遞給Floor::whereIn閉包函數,因此此閉包函數無法識別要在其中使用的外部變量,例如變量/對象($ building)。 因此,您必須告訴PHP在此閉包/匿名函數中使用此$ bulding變量:

<select>
     @foreach (Building::orderBy('title')->get() as $building)
          <optgroup label="{{ $building->title }}"></optgroup>
           @foreach (Floor::whereIn('id', function($query) use ($building){
                 $query->select('floor_id')
                   ->from('rooms')
                   ->where('building_id', $building->id)->distinct();
                   })->get() as $floor)
            <option value="{{ $floor->id }}">{{ $floor->description }}</option>
           @endforeach    
     @endforeach
</select>

因此,現在該函數可以協調該變量了:)了解更多信息: http : //php.net/manual/en/functions.anonymous.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM