Laravel получает данные SoftDelete от Eloquent - PullRequest
0 голосов
/ 09 мая 2018

У меня есть этот красноречивый запрос:

$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 data tho, потому что мне нужны объединения.

Как мне выполнить этот запрос с помощью Eloquent, joins и SoftDeletes?

1 Ответ

0 голосов
/ 09 мая 2018

Вам необходимо установить свои отношения: https://laravel.com/docs/5.6/eloquent-relationships

В вашем классе Medidore это будет

public function empresa(){
  return $this->belongsTo(Empresa::class);
}

В конечном итоге ваш запрос будет выглядеть примерно так, при условии, что я правильно понимаю ваши отношения:

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

Eloquent автоматически учитывает программные удаления. Возвращенная коллекция Medidore объектов уже будет загружена $medidore->empresa из базы данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...