엘로퀀트 ORM의 hasmany에서 like 로 관계형성은 못하는건가요?

카테고리, 상품 테이블이 있고 해당 카테고리에 속한 모든 상품을 가져오려고 합니다.

제 생각에는 카테고리 모델 안에

function products() {
return $this->hasMany("상품"); }

이렇게 사용하면 될것 같았는데 하위카테고리의 상품을 불러오지 못하네요.
하위 카테고리 규칙은 상위 카테고리 id + 임의문자로 정해져있습니다.

가령 상위카테고리 아이디가 AA 이면 그 카테고리의 하위 카테고리는 AABB 입니다.
그래서 hasMany 에서 like 검색이 가능하면 금방 풀릴것같은데 그런것은 보이질 않네요..

Model 클래스 구조도 봤지만 Model 클래스 구조를 바꾸지않으면 hasMany 함수는 이 부분을 처리하지 못할것 같더라고요..

흠.. 제가 라라벨 입문자라 좀 헷갈립니다. 제가 생각했던 구조가 맞지 않는 구조인지..

이건 또 다른 문제지만 검색하다보니 with라는 함수도 있던데.. 생각해보니 제가 생각했던
위와같이 function products() {} 함수를 만들고 값을 읽어오는 부분에서는
count(Category::where([조건])->products()) // 동작할지는 모르겠지만 대충 이런 구조로 해당 카테고리에 속한 상품들의 갯수를 가져오는..
이런 구조보다는 join 문을 이용한 쿼리가 더 효율적일것 같다는 생각도 들고..

개념이 아직 안잡혀 좀 복잡하네요..ㅠㅠ
도움이 절실합니다..ㅠ 이 부분에 대해 조언 얻을수 있을까요..?

감사합니다.

comments powered by Disqus