Laravel Has Many Through只带来了第一张唱片

时间:2016-06-14 08:17:24

标签: php laravel

那是我的问题。

这是我模型中的公共功能

public function traerDesc(){
        return $this->hasManyThrough('App\modeloDescripcionVehiculos', 'App\modeloVehiculos', 'idDescripcion', 'id', 'idVehiculo');
    }

这是控制器调用

    $data = [

                'venta' => modeloAccion::where('accion', 'venta')->with('traerVehiculo', 'traerUsuario', 'traerCliente', 'traerTransaccion', 'traerVenta', 'traerDesc')->get(),
     ];

   return view('modulos.general.informes')->with($data);

这是我在刀片文件中的表

 <table class="table table-striped table-bordered table-hover" id="myTable">
                            <thead>
                            <tr>
                                <th class="text-center">Vehiculo vendido</th>
                                <th class="text-center">Precio de compra</th>
                                <th class="text-center">Precio de venta</th>
                                <th class="text-center">Ganancia %</th>
                                <th class="text-center">Usuario</th>
                                <th class="text-center">Cliente</th>
                                <th class="text-center">Fecha venta</th>
                            </tr>
                            </thead>
                            <tbody>
                            @foreach($venta as $ventas)
                                <tr class="text-center">
                                    @foreach($ventas->traerDesc as $descripcion)
                                        <td>{{$descripcion->marca}}</td>
                                    @endforeach
                                    <td>{{$ventas->traerVehiculo->precioCompra}}</td>
                                    <td>{{$ventas->traerVehiculo->precioVenta}}</td>
                                    <td>asd</td>
                                    <td>{{$ventas->traerUsuario->nombre.' '.$ventas->traerUsuario->apellidoPaterno.' '.$ventas->traerUsuario->apellidoMaterno}}</td>
                                    <td>asd</td>
                                    <td>{{date('d-m-Y', strtotime($ventas->traerVenta->fechaVenta))}}</td>
                                </tr>
                            @endforeach

                            </tbody>
                        </table>

这是我的表格。如你看到的 。它有3行accion = venta,并且所有表中的所有表都具有相同的信息。但它只会使第一行拒绝其他行

Database

该视图仅显示1个marca,就像英文品牌一样。

enter image description here

希望可以让自己足够清楚。谢谢

1 个答案:

答案 0 :(得分:0)

不确定它会有所帮助,但您使用了急切的加载方法with。 正确使用是:

Model::with(relations)->where(condition)->get();

或者

Model::where(condition)->get()->load(relations);