>데이터 베이스 >MySQL 튜토리얼 >참가자 수에 따라 Laravel Hackathon을 주문하는 방법은 무엇입니까?

참가자 수에 따라 Laravel Hackathon을 주문하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-10 02:45:02354검색

How to Order Laravel Hackathons by Participant Count?

Laravel: Ordering by Relationship Count

이 경우 각 해커톤과 관련된 참가자 수를 기준으로 정렬된 해커톤을 찾고 싶습니다. 제공된 테이블 구조와 모델 정의는 명확한 관계형 스키마를 제공합니다.

질문에서 언급한 대로 결과를 얻으려는 첫 번째 시도에는 몇 가지 결함이 있었습니다. 첫째, find를 사용하여 관련 모델 수를 가져오는 것은 관계를 적극적으로 로드하므로 권장되지 않으며 이는 대규모 데이터 세트의 경우 비효율적일 수 있습니다. 둘째, 쿼리 내에서 참조된 $this->id는 해커톤의 ID가 아니라 쿼리를 만드는 데 사용된 모델 인스턴스를 참조하므로 올바르지 않습니다.

원하는 순서를 얻으려면 Laravel을 사용하는 다음 접근 방식을 사용하세요. 5.3의 즉시 로딩 및 명명된 관계를 사용할 수 있습니다.

Hackathon::withCount('participants')
    ->orderBy('participants_count', 'desc')
    ->paginate(10);

withCount를 사용하면 관련 참가자의 수가 쿼리에 즉시 로드되어 추가 데이터베이스 쿼리 없이 효율적으로 개수를 얻을 수 있습니다. 그런 다음 orderBy 절은 참가자 수 속성을 기준으로 결과를 내림차순으로 정렬하여 참가자 수를 기준으로 가장 인기 있는 해커톤을 효과적으로 제공합니다.

위 내용은 참가자 수에 따라 Laravel Hackathon을 주문하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.