의 hasMany의 많은 항목이 수 설정 모델이Laravel 관계 : 다른 클래스
- Laravel 4.1에서 다음과 같은 시나리오를 생각해보십시오 (우선으로 분류되어 있지만, 지금은 제쳐 놓을 수)
- 이러한 항목의 각각 다른 "종류"나는 다음을 달성하고자하는 이상적
(... 열쇠, 지갑, CIGS가 들어있는 가방 (설정) 생각)이 될 수 있습니다
- 이 설정과 항목 사이의 단순화, 열망 -로드 가능한 관계가
- DRY 항목 모델을 유지 (아래 더 나은 설명)이
더 나은 내가 생각하고있는 것을 설명하기 :
class Set extends Eloquent {
// ...
public function items() {
// provides a "transparent" method to access ALL of its items ... no matter what class
}
}
및
class SubItemOne extends Item { // ... }
class SubItemTwo extends Item { // ... }
abstract class Item extends Eloquent {
public function set() {
return $this->belongsTo('Set');
}
}
,536,
핵심에서 각 하위 클래스는 다른 것들과 공통적으로 공유하기 때문에 (생각하면 : 그들은 모두 세트에서 돌아 다니거나 이미지 등을 첨부 할 수 있습니다.) 추상 항목 클래스 내에서 정의 됨).
는 기본적으로, 나는
Set::with('items')->find(1);
같은 상황에서 내 설정에 속하는 모든 항목에 액세스 할 수 있기를 원하지만 나는 관계의 종류가 '반대'를 위해 사용하는 것에 대해 정말 확실 해요.
상황은 내가 지금까지 고려했습니다
- 은 서브 클래 싱 된 모델을 꺼내 단지 유형을 식별하기 위해 "item_kind"플래그를 사용하여 하나 개의 항목 모델을 유지한다. 각 항목은이 깃발을 기반으로 다른 클래스와의 관계를 정의합니다. (이미 나에게 소리 친다.)
- 다형성 관계 (L 4.1에 도입 된 새로운 N-2-N 포함) 이 특정 시나리오에 대해 실제로 생각되는 것처럼 보입니다 : 특히 N2N은 하나의 간단한 관계를 통해 모든 항목에 액세스하는 문제를 해결하지 못합니다.
- eager-loadable 관계를 파기하고 사용자 정의 "get_items()"메소드를 작성합니다. (-> subitemones(), -> subitemtwos() 등)과 같은 개별 관계에 액세스 할 수 있지만이 문제를 해결하는 다소 바보 같은 방법으로 보인다. (나는 쿼리 빌더 내에서 관계에 액세스 할 수 있기를 정말로 원한다)
나는 다소 여기에 갇혀 있지만 나는이 상황에 직면 한 유일한 사람이라는 것을 믿을 수 없다 ... 나는 "모범 사례"를 제안하기를 정말로 바라고있다!