1
where
Eloquent ORM을 기반으로 관련 객체를 찾는 올바른 방법은 무엇입니까?Laravel Eloquent ORM 관련 객체 찾기
예를 들어 Store 개체와 관련된 특정 Product 개체를 찾고 싶습니다.
$store = Store::where('hash', Input::get('s'))->first();
$product = $store->products->where('ext_id', 2)->get();
그러나, 나는 where
알 수없는 방법입니다 오류를 받고 있어요 : 나는 같은 것을 할 수 있다고 생각. 대신 어디 find
를 사용의 경우, 해당 제대로 작동합니다
$product = $store->products->find(1);
가 왜 where
이런 식으로 사용할 수 없습니다?
이 기회에 어디를 사용하지 못할하지만 당신은 $ 저장 -> 제품() 할 경우 ->를 ('EXT_ID', 2) 여기서 -> (수), 그 작동합니다.()를 사용하면 다시 쿼리 할 수 있습니다. 그 이유는 $ store-> products가 컬렉션이기 때문입니다. –
하지만 추가 쿼리가 실행됩니까? 따라서 $ store-> products()는 저장소와 관련된 모든 제품을 선택하는 쿼리를 실행 한 다음 -> get()은 ext_id = 2 인 저장소와 관련된 모든 제품을 선택하기 위해 쿼리를 다시 실행합니다. 그것은 첫 번째 쿼리가 완전히 불필요한 것 같지 않아? – flyingL123
네, DB :: getQueryLog()의 출력에 따라 2 개의 쿼리를 실행하는 것처럼 보입니다. 첫 번째 것은 부적절한 것처럼 보입니다. 이것을 달성하는 더 좋은 방법이 있어야합니다. – flyingL123