Внутреннее соединение в laravel с использованием Eloquent

У меня есть 2 модели LeaveApplication и LeaveDetails, которые я бы связал с внутренним разрешением на соединение с моделью exitDetails.

LeaveApplication Model

class LeaveApplication extends Model {

public $table = 'leave_application';
protected $fillable = ['user_id', 'start_date', 'end_date'];
public function leaveDetails() {
return $this->hasMany("App\LeaveDetails", 'application_id');
}
}

Это модель LeaveDetails

class LeaveDetails extends Model {
public $table = "leave_details";
public $fillable = ['application_id','leave_date','leave_type'];
}

Я пытаюсь получить доступ к этому с помощью LeaveApplication::with('leaveDetails')->where('leaveDetails.leave_date','2016-10-10')->get()

Это дает мне ошибку,
Это не создает внутреннее соединение в красноречивом.

Я тоже пользуюсь whereHas('leaveDetails') и это не использовать внутреннее соединение

0

Решение

LeaveApplication::with('leaveDetails')->where('leaveDetails.leave_date','2016-10-10')->get()

Это не сработает, потому что запросы Laravel используют несколько соединений. Если вы работаете над энергичной загрузкой, я предлагаю использовать ограниченная энергичная загрузка. Ваш Eloquent запрос будет выглядеть так:

LeaveApplication::with(['leaveDetails' => function($query){
$query->where('leave_date', '2016-10-10');
}]);

Если вам интересно, какой тип запроса будет сгенерирован Eloquent, попробуйте сбросить его, используя toSql ().

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]