Laravel:在查询构建器中获取软删除行

时间:2018-09-27 14:47:56

标签: php laravel laravel-5 eloquent

例如,如何获得被删除的行 这是我的代码:

$mov = $emp->movimientos()->where('movimiento.linea_id', intval($request->id_caso))->with('producto_nombre', 'costo_promedio');

我有这个咨询,一个movimientos与一个costo_promedio相关,但是如果在某些情况下一个costo_promedio被软删除,我咨询$mov中的结果将给我costo_promedio中为null。 关键是,我必须在哪里withTrashed()方法中获取所有数据,即使是已软删除的数据也是如此

寻求帮助

2 个答案:

答案 0 :(得分:2)

在闭包中使用with()

$mov = $emp->movimientos()
    ->where('movimiento.linea_id', intval($request->id_caso))
    ->with([
        'producto_nombre',
        'costo_promedio' => function($query) {
            $query->withTrashed();  
        }
    ]);

答案 1 :(得分:1)

您可以在“口才查询生成器”实例中的任何位置调用withTrashed()函数,但要在get()first()函数之前。

要急于加载带有乱码的关系,可以关闭该关系。

$mov = $emp->movimientos()->where('movimiento.linea_id', intval($request->id_caso))
    ->with([
        'producto_nombre',
        'costo_promedio' => function($q) {
            $q->withTrashed();  
        }
    ])->get();