【问题标题】:split foreach loop based on some column value根据某些列值拆分 foreach 循环
【发布时间】:2018-02-04 01:02:06
【问题描述】:

我有一个列名类型的表,如何在一个查询中根据其列值显示结果?

Tags
id|name|type    //type can be fixed,price

Tag::orderBy('id', 'desc')->get();

现在我想显示价格并固定在两个不同的部分。最好的方法是什么。

我可以通过以下查询来做到这一点,但我正在寻找最好的方法,可能是一次查询。

Tag::where('type','fixed')->orderBy('id', 'desc')->get();
Tag::where('type','price')->orderBy('id', 'desc')->get();

【问题讨论】:

    标签: php laravel foreach


    【解决方案1】:

    您的查询应该是这样的:

    $tags = Tag::orderBy('id', 'desc')->groupBy('type')->get();
    

    你的 foreach 循环应该是这样的:

        @foreach ($tags as $tag) 
            @if($tag->fixed)
                // do smth
            @else 
                 //do smth
    
            @endif
       @endforeach
    

    【讨论】:

    • 谢谢你的回答,我错过了分组条款。
    【解决方案2】:

    我可能有错误的一端,您可能意味着您想在控制器中执行逻辑并根据结果返回不同的视图,但是,我会在一个查询中返回所有内容,就像您已经完成的那样

    Tag::orderBy('id', 'desc')->get();

    @include Blade 指令包含一个附加参数,它是您传递给此部分的数据:

    @include('view.name', ['some' => 'data'])

    有关@include 指令的更多信息,请参阅Documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-28
      • 1970-01-01
      • 2016-07-19
      • 1970-01-01
      • 2021-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多