딩고라는 특정 라이브러리를 사용해본 적이 없어서 정확한 답변은 아닙니다.
1) 딩고에서는 엘로퀀트가 아닌 모델(Plain Old PHP Object 또는 배열)은 트랜스포머를 쓸 수 없나요?
2) \Illuminate\Database\Eloquent\Model 클래스에서 getRelations, getRelation, relationLoaded, setRelation, setRelations API를 찾아서 상택님 문제에 적용 가능한지 확인해 보시면 좋겠습니다 (e.g. Foo::setRelation('관계이름', null)).
3) 그리고 ?includes=쿼리 파라미터는 딩고 설정 등에서 비활성화 할 수 있는 지도 확인해 보세요.
안녕하세요 오상택입니다.
Api 서버 구축 중에 문제가 생겨서 도움 좀 여쭙고자 합니다.
Dingo를 사용하기로 정했습니다
Transformer를 만들어서
관계되는 필요한 데이터는
domain.com?include="foo" 와 같은 방법으로 진행 하려 합니다
그런데 Eloquent로 만들어 지지 않은 모델이 있어서
그러면 EagerLoading이 필요하기 때문에 include로 파라미터가 넘어올 떄 해당 모델을 직접 with를 써줘야 하구요
2. 해제 하지 않는다면 with를 안써줘도 되지만 Eloquent로 만들어지지 않은 모델을 include할 때 EagerLoading 못한다고 에러가 생기구요
더 큰 문제는 $availableIncludes 에 등록하지도 않았는데 include=에 관계되는 모델 이름을 넣으면 자동으로 include가 되네요
보안 이슈가 생깁니다ㅠㅠ
그래서
1번으로 하려고 하니
이와 같은 코드를 입력해 줘야 되서 찝찝하고
이걸 넣지 않고
2번으로 하자니 선언하지도 않은 모델이 노출돼서 기분이 좋지 않네요
선언한 모델만 include시키는 방법이 없을까요
무엇인가 잘못됐다고 생각 드는 게
Transformer에 $availableIncludes가 왜 존재하는 걸까요
도와 주세요ㅠㅠ