Наиболее подходящим решением для вашего непосредственного вопроса является добавление выбора в ваш запрос Eloquent:
$calls=DB::select('calls.* from calls')
->leftJoin('contacts','calls.contact_id','=','contacts.id')
->leftJoin('companies','calls.company_id','=','companies.id')
->where('completed','=',false)
->orderBy('call_on','asc')
->get();
return $calls;
Вместо значения по умолчанию select *
явно диктуйте, что будет возвращено. Тем не менее, это может быть сделано более аккуратно с помощью Eloquent с использованием моделей:
Calls::whereHas('companies', function (Builder $query) {
$query->where('completed', false);
})->orderBy('call_on', 'asc')->get();
Для того, чтобы это работало, вам нужно установить отношение на уровне модели:
// App\Calls model:
public function companies() {
return $this->belongsTo(App\Companies::class);
}
// App\Companies model:
public function calls() {
return $this->hasMany(App\Calls::class);
}