Laravel 5.3에서 첫 번째 다형성 관계에 대해 머리를 쓰려고합니다.Laravel 5.3 다형성 관계
내가 맺으려는 관계는 'Editorial'에 많은 'Elements'가있을 것이며, 각 요소는 각자의 모델이되고 주문을 받게된다는 것입니다.
예를 들어, 'ElementText', 'ElementImage', 'ElementButton'모델을 사용하게되면 'Editorial'에 다양한 요소가 할당됩니다.
이것은 내가 왜 내가 다형성 관계가 필요하다고 생각합니다. 나는 'Editorial'모델의 각 요소 유형에 대해 여러 관계를 원하지 않습니다. 유형에 관계없이 모든 '요소'를 가져 와서 순서대로 가져올 수 있기를 바랍니다.
내가 생각 솔루션은 laravel 워드 프로세서에서 morphToMany
예와 유사
editorial_id - integer
order - integer
element_id - integer
element_type - string
처럼 열이있는 'editorial_element'피벗 테이블을 가지고있을 거라고 생각하지만 예를 들어 당신이에 모델을 지정해야 morph.
그래서 내 사설 모델에서 morphTo() 메서드를 사용해야하는지 궁금합니다.
public function elements() {
return $this->morphTo();
}
하지만 난 그게 내가 뒤로
는 내가 필요로하는 관계를 어떤 생각을 설정할 수있는 경우 (사설 당 하나 개의 요소를 허용하는) 것입니다 내 사설 테이블에 _type
및 _id
열을 추가해야 할 것입니다 의미한다고 생각 내가 잘못 접근하고 있는가?
알다시피, '요소'모델을 수동으로 업데이트해야하며 더 이상 attach(), detach() 메소드를 사용하지 않을 것이라고 생각합니다. –
'BelongsTo()'는'associate()'와'disassociate()'을 가지고 있지만, 일단 당신이 그것들을 생성하면 관계를 조작 할 상황을 생각할 수 없습니다. 변경 사항을 볼 수있는 단 하나는'Editorial - hasMany - Element'이고, 불행히도 거기에는'sync()'메소드가없는 것 같지만'saveMany()'할 수 있습니다. –
일찍부터 집으로 보내지기 전에이 접근법에 빨리갔습니다. 나는보기를 사용하지 않았지만 다음을 수행했습니다. $ editorial = \ App \ Editorials :: with ('elements') -> first(); foreach ($ editorial-> 요소를 & $ 요소로) { \t \t $ 요소 -> 내용; \t}. 궁금한 점이 성능에 어떤 영향을 미치는지 .. –