일단 결론부터 이야기 드리자면 없습니다.
모델 부분부분 로우 쿼리를 넣는 로직(Db::raw)으로 어떻게 할 수 있을 것 같은데 그렇게도 불가능할 것 같습니다.
될지 안될지 가장 확실한 방법은 소스를 까서 보면 됩니다. 5.2 브랜치 소스를 열어보면,
https://github.com/laravel/framework/blob/5.2/src/Illuminate/Database/Query/Builder.php#L1541
요기가 SQL 소스를 만드는 부분입니다. 쿼리빌더가 Grammar안에 있는 내용을 기반으로 대충 SQL을 쭉 만들어나가는데요,
Select Components는
순서대로 만들어갑니다. (참고 : https://github.com/laravel/framework/blob/5.2/src/Illuminate/Database/Query/Grammars/Grammar.php#L22)
만약에 위와 같은 로직을 지원한다면 이 중에 있어야 겠죠 ?
github issue 에 올라간것 같지만 계획이 없다고 답변이 달렸었습니다.
https://github.com/laravel/framework/issues/4625
필요하신 경우 직접 Builder 의 macroable trait 을 사용해서 구현하셔야 할것 같습니다.
안녕하세요. 라라벨 5.2 버전을 사용하고 있습니다.
혹시 Eloquent 를 통해 SELECT 를 할 때 "use index"를 지정할 수 있는 방법이 있는지 궁금합니다.
관련해서 검색을 해보니 DB::raw("SELECT * FROM table USE INDEX (`index_name`)") 처럼 사용하더라구요.
Model::on('read')->index('')→get(); 처럼 사용할 수 있는 방법이 있을까요?