미리 감사드립니다. 바쁘다면 굵은 글씨로 건너 뜁니다.Laravel 5.3 Eloquent Model 동적 테이블 속성
다음 사례가 있습니다. 앱의 모든 사용자는 Eloquent Models (즉, code_invoices의 경우 Invoice.php, code_clients의 경우 Client.php)에 대해 고유 한 접두사 테이블 집합을 사용합니다. 접두사는 사용자 테이블 (예 : users.code)에 정의됩니다.
Laravel 5.2 나는 사용자가 로그인 한 후에 런타임에 설정 한 config (또는 session) 변수를 읽음으로써 Eloquent 모델의 $ table 속성을 쉽게 설정할 수있었습니다. 관계를 포함하여 모든 것이 잘 작동했습니다.
그러나 5.3 업데이트 후에는 런타임에 설정된 모든 구성 값이 세션 값과 마찬가지로 개체에서 null을 반환합니다. 문서에서 생성자에서 세션을 사용할 수 없다는 것을 알고 있으며 제안 된 해결 방법은 미들웨어 클로저이지만 미등록 클래스는 미정의 메서드 오류를 반환하므로 미들웨어 클로저를 사용할 수 없습니다.
그래서 내 질문은 동적으로 Eloquent의 $ table 속성을 설정하거나 모델의 런타임 구성 값을 읽는 방법입니다.
도움을 주시면 감사하겠습니다.
편집 : from()
메서드를 사용하여 모델의 테이블을 지정할 수 있습니다. 작동 방식 : $model = \App\ModelName::from('prefix_table')->first();
하지만 내 진짜 문제는 관계입니다. 이것은 작동하지 않습니다 : $model = \App\ModelName::from('prefix_table')->with('relatedModel')->first()
관련 모델이 사용할 테이블 접두어를 알지 못하기 때문에 그렇지 않습니다.
흥미 롭습니까? :)
아마도이 경우 DB :: setTablePrefix ($ prefix)'가 도움이 될 수 있습니다. – geoandri