[英]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.