基于某些列值拆分foreach循环

时间:2017-08-25 23:26:45

标签: php laravel foreach

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

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();

2 个答案:

答案 0 :(得分:2)

您的查询应该是这样的:

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

你的foreach循环应如下所示:

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

        @endif
   @endforeach

答案 1 :(得分:2)

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

add_filter( 'submit_resume_form_fields', 'remove_submit_resume_form_fields' ); function remove_submit_resume_form_fields( $fields ) {

Tag::orderBy('id', 'desc')->get(); blade指令包含一个附加参数,该参数是您传递给此部分的数据:

@include

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