Laravel foreach给出了未定义的错误

时间:2014-11-25 19:41:51

标签: php laravel laravel-4

在我的laravel视图中,我有一个由3个foreach组成的选择列表。我很欣赏第二个foreach中的查询不是最佳实践,但我不知道如何最好地构建它。

我现在的问题很大程度上是我在第二个foreach中得到一个未定义的错误,指的是建筑。

有人可以帮忙吗?

@foreach($buildings as $building)
   <optgroup label="{{ Str::upper($building->title) }}"></optgroup>
    @foreach (DB::select('select id, description from `floors` where `id` in (select distinct `floor_id` from `rooms` where `building_id` = $building->id)') as $floor)
       <optgroup label="{{ $floor->description }}"></optgroup>
          @foreach (Room::where('active',1)->where('floor_id', $floor->id)->where('building_id', $building->id)->orderBy('name')->get() as $room)
          <option value="{{ $room->id }}"> - {{ $room->fulltitle }}</option>
          @endforeach
    @endforeach
@endforeach

1 个答案:

答案 0 :(得分:1)

您正在使用' - 引用的字符串。他们做 NOT 插入变量。

$foo = 'bar';

echo '$foo'; // outputs $, f, o, o
echo "$foo"; // outputs b, a ,r

这意味着您将文字$bu等发送到数据库,这将是一个未知/非法的字段名称。< / p>

所以你应该:

@foreach (DB::select("select [...snip...] = $building->id)") as $floor)
                     ^------------------------------------^