在 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