스코프를 사용하여 오늘 생일을 가진 사용자를 선택하는 것과 같은 기본 모델 관련 쿼리를 수행 할 수 있습니다. 스코프는 Eloquent Models에 명시되어 있으며 Eloquent Query Builder 인스턴스를 반환합니다. 하지만 더 복잡한 쿼리를 수행해야하는 경우 전자 메일 유형별로 대규모 전자 메일 로그 테이블을 그룹화하고 사용자 및 전자 메일에 가입하고 일부 집계를 적용하는 방법은 무엇입니까? 쿼리의 결과 필드가 혼합되어 있으므로 (전자 메일, 전자 메일 유형, 사용자, 로그 필드) 데이터베이스 쿼리 작성기를 사용해야합니다. 나는 빌더에게 전화하기에 가장 좋은 곳을 생각하는 것을 주저하고 있습니다. 오히려 필요한 서비스에 같은 물건을 배치Laravel의 데이터베이스 쿼리 작성 도구를위한 장소
class ConcreteModel extends Model {
public static function someQuery(): \Illuminate\Database\Query\Builder {
return \DB::table('some_table')->join('something');
}
}
아니면 :
내가 다른 테이블을 조인의 주요 모델의 정적 방법이 될 수 있습니까?
컨트롤러 또는 서비스는 이러한 쿼리에 적합 할 수 있습니다. – linuxartisan
@linuxartisan 비즈니스 로직을 컨트롤러에 혼란스럽게하는 것이 두렵습니다. 그래서 모델 대신 소비하는 서비스에 쿼리를 배치해야한다고 생각합니다. – Sergey
저장소 패턴을 사용하지 않는 이유는 무엇입니까? 비즈니스 로직과 데이터 구조를 위해 레이어를 쉽게 분리 할 수 있습니다. –