laravel을 사용하는 프로젝트에서 (수정하지 않고) 사용해야하는 기존 DB가 있습니다.모핑이없는 laravel 관계
테이블에는 Accounts
테이블, Vendor
테이블 및 Contacts
테이블이 있습니다. Contacts
은 Account
또는 Vendor
, belongTo
/hasMany
관계에 속할 수 있습니다.
Contacts
테이블은 Owner
컬럼이 그 중 하나 또는 Accounts
Vendor
테이블의 기본 키에 키. 난 당신이 Contacts
테이블에 contactable_id
및 contactable_type
열을 추가하고, 거기에서 가야 할 위치, 모핑을 사용하는 laravel 세계에서이 작업을 수행 할 수있는 "권리"방법을 알고있는 것처럼
.
그러나 DB를 수정할 수 없기 때문에 기존 관계를 사용하여 작업해야합니다.
나는이 같은 Contact
클래스에 메서드를 추가하여 hackish의 뭔가 정렬을 수행 할 수 있습니다
public static function account_contacts()
{
return DB::table('Contacts')
->join('Accounts', 'Contacts.Owner', '=', 'Accounts.ID');
}
그러나 이것은 배열의 배열 대신 Contact
객체를 반환합니다.
모핑을 사용하지 않고 실제 Contact
개체를 다시 가져 오거나 관계를 만들 수있는 방법이 있습니까?
편집 : 내가 필요로하는 것에 명확함이 부족해서 죄송합니다. 모든 배열을 배열 대신 Contact
모델로 사용하여 반복 할 수 있도록 Account
:: Contacts
또는 모두 Vendor
:: Contacts
을 Contacts
의 배열로 가져와야합니다.
@ alejandro-- 완벽 해 보입니다. 그것 paginatible 있습니까? – user101289
@ user101289 페이지 매김 방법으로 업데이트되었습니다. – alepeino