У меня есть область запроса из приложения L5.1, которое не работает на L5.7. Область действия добавляет простое соединение с оператором DB :: raw, например:
public function scopeLatest($query)
{
return $query->join(DB::raw('(SELECT patient_id, MAX(created_at) created_at FROM referral_reports GROUP BY patient_id) r2'), function ($join) {
$join->on('referral_reports.patient_id', '=', 'r2.patient_id');
$join->on('referral_reports.created_at', '=', 'r2.created_at');
});
}
Использование этой области действия в L5.1 работало замечательно, но в 5.7 все соединение не включается в запрос и не выдается никакой ошибки. Мне пришлось использовать DB :: enableQueryLog () в обоих приложениях, чтобы увидеть, что результирующие запросы были разными.
Есть идеи, почему это не работает в 5.7?
Вот пример использования этой области с помощью статического метода на модели:
$entries = self::inStudies($studies)
->calltime($startDate, $endDate)
->latest()
->omitdeleted()
->get();
inStudies, calltime, latest, omitdeleted - все области запроса.