让我有3个名为user
的表,admin
,post
我的帖子表结构是
-id
-poster_id
-poster_type //if value is 1 then poster_id will be releted with user table. if value is 2 then poster_id releted with admin table.
现在如何基于poster_type值
与两个表进行写belongsTo
关系
我想在Post模型中这样做
public function Author(){
return $this->belongsTo('User', 'poster_id')->where('poster_type', '1') //poster_type is the field of post table.
}
答案 0 :(得分:2)
首先,你谈论的是多态关系,由雄辩支持。你应该看看文档。
http://laravel.com/docs/eloquent#polymorphic-relations
其次,您将雄辩的关系与特殊的数据恢复功能混合在一起,这是您应该避免的。我建议你把关系本身与数据恢复功能分开。
此外,如果您想更进一步,请将关系保留在模型中,并将数据恢复功能拆分为存储库对象。