我在一个视图中有一个包含一系列字段的表,我想在不同的表中过滤这些字段(在同一个视图中)。
这个视图从数据库中获取一些字段,通过一个 SQL 查询在控制器中使用 Laravel 的 Eloquent,在一个名为 的变量中$horarios
:
这是从第一个视图接收数据的控制器
public function horarios($id,Request $request){
$fecha = date('Y-m-d', strtotime($request->input('fecha')));
$horarios = HorariosNew::join('cancha','cancha.id','=','horario.cancha_id')
->leftJoin('reserva','reserva.horario_id','=','horario.id')
->where('horario.hora_inicio','>',date('Y-m-d H:m:s'))
->where('horario.hora_inicio','LIKE',$fecha.'%')
->where('cancha.complejo_id',$id)
->groupBy('horario.id','horario.hora_inicio','reserva.horario_id','cancha.nombre','cancha.deporte','reserva.estado_reserva_id','reserva.horario_id')
->orderBy('cancha.nombre','asc')
->orderBy('horario.hora_inicio','asc')
->get(['horario.id','horario.hora_inicio','cancha.nombre as cancha','cancha.deporte','reserva.estado_reserva_id','reserva.horario_id']);
//Y REDIRECCIONA A LA VISTA EN DONDE TENGO LA TABLA
return view('reservar-cancha-horarios',['complejo'=>$id,'horarios'=> $horarios]);
}
下面我留下一个数据如何显示的示例,它们都在一起,并且我在其中寻找相同的东西出现在不同的表中。
要过滤的字段是字段的名称。我希望将其与其相应的数据一起显示在视图中的不同表中。
到目前为止,我正在尝试以下内容:
在视图中我的表的以下行中:
<table>
...
@elseif($horario->cancha = 'Cancha 1')
<form method="POST" action="{{route('reservar-confirmar',['complejo'=>$complejo])}}">
<td>{{$horario->hora_inicio}}</td>
<td>{{$horario->cancha}}</td>
<td>{{$horario->deporte}}</td>
<td class="text-primary">Disponible</td>
{!! Form::token() !!}
<td>
<input type="submit" name="guardar" class="btn btn-danger" id="btn-seleccionar" value="Seleccionar">
</td>
</form>
@endif
...
</table>
我设法在表格中只显示了 1 号球场。
要对其他人做同样的事情,他只需要重复表格的完整结构,修改必要的内容。
虽然我知道如果它从数据库中带来的那个字段更改为不同的值,这将失败,因为它会向我显示空表。
因此,我不太清楚如何将其与自身进行比较,以使其始终是相同的值,从而在不同的表中显示相应的字段。
您可以使用groupBy()来完成。您只需要传递一个列的名称,这样它就会正确分组。您的控制器应如下所示:
公共功能时间表($id,Request $request){
}
重要提示:您必须从查询中删除 groupBy() 并只保留我添加的那个。如果需要,您也可以直接在查询中执行此操作,但我认为这种方式更具可读性。另一方面,我会回顾 orderBy() 的问题,这对我来说似乎很奇怪,因为据我所知,没有这样的 eloquent 方法。干杯!
回答我的问题,我设法解决了困境。
我所做的是以下内容:
在从前一个视图接收数据的控制器中,在其中添加一个字段,
group by
然后将其分配为变量。我从日程表中添加了球场的 id,并将其命名为id_court。
然后在视图中我只需要用一句话来验证
IF-ElSE
然后剩下的就是重复整个表格的结构并显示一个不同的字段,为您要显示的字段修改以下行,管理将它显示的数据分离到不同的表格中: