【问题标题】:Laravel foreach giving undefined errorLaravel foreach 给出未定义的错误
【发布时间】:2014-11-26 03:46:05
【问题描述】:

在我的 laravel 视图中,我有一个由 3 个 foreachs 组成的选择列表。我很欣赏第二个 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

【问题讨论】:

    标签: php laravel laravel-4


    【解决方案1】:

    您正在使用' 引用的字符串。他们确实插入变量。

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

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

    所以你应该有:

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

    【讨论】:

    • 谢谢。这似乎已经完成了这项工作。我对此进行了深入研究,但在网上找不到任何资源来告诉我如何最好地构建这种类型的巢,最好是在控制器中。你能建议吗?
    • 不知道。从来没有用过laravel。但一般来说,嵌套的数据库选择通常总是可以重写为单个连接的选择。
    猜你喜欢
    • 2013-04-30
    • 2018-10-06
    • 2014-12-26
    • 2018-07-03
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 2020-02-28
    • 2018-12-21
    相关资源
    最近更新 更多