2016-09-02 75 views
0

我試圖建立一個基於角色的用戶管理,但是被許多類型的資源分割。雄辯的ORM多態關係

我有這樣的關係模型: Relational model with basic tables

我需要在用戶配置文件管理視圖像這樣顯示: Expected result view

但我不想做出這樣的查詢:

RoleUser::where('user_id',1)->get(); 

我想使用多對多多態關係來利用Eager /懶惰加載Laravel,但我不知道要做。 另一個有趣的功能要考慮到的是,我不想在數據庫中存儲類型,如App\Models\Event,App\Models\ArticleApp\Models\Photo,但地圖對我來說效果不好(因爲關係設置不正確)。

//AppServiceProvider::boot() 
Relation::morphMap([ 
    'event' => Event::class, 
    'race' => Race::class, 
]); 

任何想法?

回答

1

試試這個

//AppServiceProvider::boot() 
    Relation::morphMap([ 
     'event' => App\Models\Event::class, 
     'race' => App\Models\Race::class, 
    ]); 
+0

是的,這是我做了什麼!它的工作原理!然後你可以從每個模型中獲得'morphClass': '$ event-> getMorphClass();'=>'event' – Erusso87