Laravel通过口才获取软删除数据

Laravel通过口才获取软删除数据,laravel,eloquent,soft-delete,Laravel,Eloquent,Soft Delete,我有一个雄辩的疑问: $datos = Medidore::select([ 'medidores.*', 'empresas.name as empresa', 'tipo_medidor.descripcion as tipomedidor', 'tipo1.descripcion as canal_1', 'tipo2.descripcion as canal_2']) ->join('empresas', 'medidores.emp

我有一个雄辩的疑问:

$datos = Medidore::select([
    'medidores.*',
    'empresas.name as empresa',
    'tipo_medidor.descripcion as tipomedidor',
    'tipo1.descripcion as canal_1',
    'tipo2.descripcion as canal_2'])
    ->join('empresas', 'medidores.empresa_id', '=', 'empresas.id')
    ->join('tipo_medidor', 'medidores.cod_tipo_medidor', '=', 'tipo_medidor.id')
    ->join('tipo_canal_med as tipo1', 'medidores.canal1', '=', 'tipo1.id')
    ->join('tipo_canal_med as tipo2', 'medidores.canal2', '=', 'tipo2.id')
    ->whereNull('medidores.deleted_at')
    ->get();
它没有带来任何数据,为什么?如果我这样做$datos=Medidore::all;当然,对于thrash数据tho,它是有效的,因为我需要连接


如何使用Elount、Join和SoftDeletes对该查询进行di?

您需要建立关系:

在你的Medidore课堂上

public function empresa(){
  return $this->belongsTo(Empresa::class);
}
假设我正确理解了您的关系,那么最终您的查询将如下所示:

Medidore::with('empresa', 'tipoMedidor', 'canal1', 'canal2')->get();

雄辩将自动考虑软删除。返回的Medidore对象集合已经从数据库加载了$Medidore->empresa

Nice,我还在学习。我现在收到了对模型上未定义关系[empresa]的消息调用[App\Models\Mantenedores\Medidores\medidorey您必须将该关系函数以及其他关系函数(如tipoHmm)放入Medidore类中,这意味着我必须更改许多内容、代码和数据库。拉威尔希望id名为Medidore\u id,耶稣……我回到查询生成器中。@pmirnd您可以使用吗如果需要,可以使用其他参数来定义列;