在 Laravel 中加入 Find 和 Foreach 检索错误数据
Join Find and Foreach retrieving wrong data in Laravel
我正在使用 join/find Laravel 数据库来检索正确的数据,但它显示数据库的最后一个条目重复了 13 次。
希望你能帮助我。
这是代码。
在控制器中
$joinCot = Cotizaciones::findOrFail($id);
$joinCot = DB::table('cotizaciones')->join('prod_cotizaciones', 'prod_cotizaciones.id_cotizacion', '=', 'cotizaciones.id')
->join('users', 'users.id', '=', 'cotizaciones.id_usuario')
->join('clientes', 'clientes.id', '=', 'cotizaciones.id_cliente')
->select('cotizaciones.id', 'cotizaciones.id_usuario', 'cotizaciones.id_cliente', 'cotizaciones.equipo', 'cotizaciones.servicio_venta', 'cotizaciones.pdf', 'cotizaciones.fecha', 'cotizaciones.status', 'prod_cotizaciones.id as idPC', 'prod_cotizaciones.partida as partida', 'users.id as idU', 'clientes.id as idC', 'clientes.nombre_cliente')->get();
在blade
@foreach ($joinCot as $key => $value)
<div>{{ $joinCot->idPC }}</div>
@endforeach
如果我制作一个 return 的 $joinCot 它会显示
[{"id":40,"id_usuario":1,"id_cliente":1,"equipo":"Pipeta","servicio_venta":"Servicio","pdf":null,"fecha":"2021-05-27","status":"Pendiente","idPC":27,"partida":1,"idU":1,"idC":1,"nombre_cliente":"Instituto Nacional de Enfermedades Respiratorias Ismael Cos\u00edo Villegas"},{"id":40,"id_usuario":1,"id_cliente":1,"equipo":"Pipeta","servicio_venta":"Servicio","pdf":null,"fecha":"2021-05-27","status":"Pendiente","idPC":28,"partida":2,"idU":1,"idC":1,"nombre_cliente":"Instituto Nacional de Enfermedades Respiratorias Ismael Cos\u00edo Villegas"}]
我有 2 个条目 idPC = 27,第二个条目 idPC = 28。
但是当时 return 视图 foreach 只是抛出 28282828282828282828282828.
您在内部循环中访问错误 $joinCot->idPC
它应该是 $value->idPC
。$value
将 return 数组或对象中的每一行。
@if(isset($joinCot)&&count((array)$joinCot))
@foreach ($joinCot as $key => $value)
<div>{{$value->idPC }}</div>
@endforeach
@endif
$joinCot 是您检索到的数据数组。 foreach() return 每次迭代中的单行和键。您必须访问行-> 值。
也就是说,
@foreach ($joinCot as $key => $value)
<div>{{$value->idPC }}</div>
@endforeach
我正在使用 join/find Laravel 数据库来检索正确的数据,但它显示数据库的最后一个条目重复了 13 次。
希望你能帮助我。 这是代码。
在控制器中
$joinCot = Cotizaciones::findOrFail($id);
$joinCot = DB::table('cotizaciones')->join('prod_cotizaciones', 'prod_cotizaciones.id_cotizacion', '=', 'cotizaciones.id')
->join('users', 'users.id', '=', 'cotizaciones.id_usuario')
->join('clientes', 'clientes.id', '=', 'cotizaciones.id_cliente')
->select('cotizaciones.id', 'cotizaciones.id_usuario', 'cotizaciones.id_cliente', 'cotizaciones.equipo', 'cotizaciones.servicio_venta', 'cotizaciones.pdf', 'cotizaciones.fecha', 'cotizaciones.status', 'prod_cotizaciones.id as idPC', 'prod_cotizaciones.partida as partida', 'users.id as idU', 'clientes.id as idC', 'clientes.nombre_cliente')->get();
在blade
@foreach ($joinCot as $key => $value)
<div>{{ $joinCot->idPC }}</div>
@endforeach
如果我制作一个 return 的 $joinCot 它会显示
[{"id":40,"id_usuario":1,"id_cliente":1,"equipo":"Pipeta","servicio_venta":"Servicio","pdf":null,"fecha":"2021-05-27","status":"Pendiente","idPC":27,"partida":1,"idU":1,"idC":1,"nombre_cliente":"Instituto Nacional de Enfermedades Respiratorias Ismael Cos\u00edo Villegas"},{"id":40,"id_usuario":1,"id_cliente":1,"equipo":"Pipeta","servicio_venta":"Servicio","pdf":null,"fecha":"2021-05-27","status":"Pendiente","idPC":28,"partida":2,"idU":1,"idC":1,"nombre_cliente":"Instituto Nacional de Enfermedades Respiratorias Ismael Cos\u00edo Villegas"}]
我有 2 个条目 idPC = 27,第二个条目 idPC = 28。
但是当时 return 视图 foreach 只是抛出 28282828282828282828282828.
您在内部循环中访问错误 $joinCot->idPC
它应该是 $value->idPC
。$value
将 return 数组或对象中的每一行。
@if(isset($joinCot)&&count((array)$joinCot))
@foreach ($joinCot as $key => $value)
<div>{{$value->idPC }}</div>
@endforeach
@endif
$joinCot 是您检索到的数据数组。 foreach() return 每次迭代中的单行和键。您必须访问行-> 值。 也就是说,
@foreach ($joinCot as $key => $value)
<div>{{$value->idPC }}</div>
@endforeach