[英]split foreach loop based on some column value
我有一个列名称类型的表,如何在一个查询中显示基于其列值的结果?
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();
您的查询应该是这样的:
$tags = Tag::orderBy('id', 'desc')->groupBy('type')->get();
你的foreach循环应如下所示:
@foreach ($tags as $tag)
@if($tag->fixed)
// do smth
@else
//do smth
@endif
@endforeach
我可能有错误的结束,你可能意味着你想在控制器中执行逻辑并根据结果返回不同的视图,但是,我会在一个查询中返回所有内容,就像你已经完成的那样
Tag::orderBy('id', 'desc')->get();
@include
blade指令包含一个附加参数,该参数是您传递给此partial的数据:
@include('view.name', ['some' => 'data'])
有关@include指令的更多信息可以在文档中找到
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.