다음 쿼리는 Laravel 5.2에서는 작동하지만 Laravel 5.3에서는 작동하지 않습니다. 이 같은 쿼리는 같은 데이터베이스에 Laravel 5.2에서 작동 : 5.3에서 실행하면Laravel 5.3 groupBy() 깨졌습니까?
$messages = Message::with('sender.profile', 'recipient.profile')
->where('sender_id', 1)
->orWhere('recipient_id', 1)
->groupBy('thread')
->get();
나는 당신이 데이터베이스 문제를 말할 전에, 기억, 이제 다음과 같은 오류 메시지가
SQLSTATE[42000]: Syntax error or access violation: 1055
'tmp_laravel.messages.id' isn't in GROUP BY (SQL: select * from `messages`
where `sender_id` = 1 or `recipient_id` = 1 group by `thread`)
을받을 수 있습니다. 그래서 MariaDB의 제 버전이라면 L5.2에서 제대로 작동하지 않아야합니다. 맞습니까?
또한 Sequel Pro에서 직접 쿼리를 실행하면 작동합니다.
사실 내 앱을 업그레이드 할 때 내가 한 일이 아니 었는지 확인하기 위해 Laravel의 새로운 복사본 2 개 (5.2 및 5.3)를 설치했습니다. 컨트롤러, 모델, 경로, .env 등이 동일 할 때까지 똑같은 코드를 각각 설치하여 각 버전에서 다시 쿼리를 실행했습니다. 동일한 결과 : L5.2에서 작동하고 L5.3에서 중단됩니다.
귀하의 조언을 듣고 새로운 쿼리를 찾아 낼 것입니다. 감사! – timgavin
재 작성으로 무엇을 권하고 싶습니까? – timgavin
@timgavin - 새로운 질문이 있습니다. 이것은 엄격한 모드와 설정에 관한 것입니다. "그룹별로 최신/가장 오래된 항목을 선택하는 방법"과 같은 많은 질문이 있습니다. MySQL 용. 그러나 아직 나는 laravel 해결책을 보지 못했습니다. 여기에 새 질문에 대한 링크를 게시하면 나중에 살펴 보겠습니다. –