感謝您的時間提前。如果您匆忙,請跳至粗體部分。Laravel 5.3雄辯的模型動態表格屬性
我有一個下面的用例:應用程序的每個用戶都使用他自己的一套前綴表格作爲Eloquent模型(即Code_invoices的Invoice.php和Code_clients的Client.php)。前綴在用戶表中定義(例如users.code)。
在Laravel 5.2我已經能夠通過讀取用戶登錄後運行時設置的配置(或會話)變量,輕鬆設置Eloquent模型的$ table屬性。一切正常,包括關係。
但是5.3更新後,在運行時設置的任何配置值現在都會在對象中返回null(與會話值一樣)。我從文檔中知道會話在構造函數中不可用,並且建議的解決方法是中間件閉包,但Eloquent類不能使用中間件閉包,因爲它會返回未定義的方法錯誤。
所以我的問題是雙重的:我如何動態設置Eloquent的$ table屬性和/或如何讀取模型中的運行時配置值。
任何幫助將不勝感激。
編輯: 我可以用from()
方法指定模型表。 這個作品: $model = \App\ModelName::from('prefix_table')->first();
但我真正的問題是關係。 這不起作用: $model = \App\ModelName::from('prefix_table')->with('relatedModel')->first()
沒有,因爲相關模型不知道使用什麼表前綴。
有意思,是吧? :)
也許'DB :: setTablePrefix($ prefix)'在這種情況下可能非常方便。 – geoandri