在刀片视图层中使用多个查询

时间:2018-04-12 07:23:10

标签: php laravel laravel-5.6

对Laravel来说很新,并试图弄清楚这些细节。 如果我编写一个主查询来选择表中的所有内容,我可以在从表中选择列和行时编写单个查询。

示例:

主要查询:

public function allTickets(){
$tickets = DB::table('tickets')->get();
return view('admin.index',compact('tickets'));

在我看来:

//THIS WORKS. It gives me a count of all open and closed tickets
{{$tickets->where('status', '=', 'OPEN')->Count()}}
{{$tickets->where('status', '=', 'CLOSED')->Count()}}

然而这不起作用......

  

错误:调用成员函数where()on string(View:...

@foreach ($tickets as $ts)
{{$ts->subject->where('status', '=', 'OPEN')}}
@endforeach

@foreach ($tickets as $ts)
{{$ts->subject->where('status', '=', 'CLOSED')}}
@endforeach

有没有办法使用那个ONE主查询并显示打开和关闭的故障单的所有主题,还是需要在我的控制器中编写多个查询来实现这一目标?

1 个答案:

答案 0 :(得分:4)

你可以用简单的解决方案做到这一点。 首先用if语句写一个然后再写一个

@foreach ($tickets as $ts)
  @if($ts->status == 'OPEN')
     {{$ts->subject}}
  @endif
@endforeach

@foreach ($tickets as $ts)
  @if($ts->status == 'CLOSED')
    {{ $ts->subject }}
  @endif
@endforeach