У меня есть 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')
и это не использовать внутреннее соединение
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 ().
Других решений пока нет …