laravel Eloquent中的条件关系

时间:2014-09-21 06:44:03

标签: laravel laravel-4 eloquent

让我有3个名为user的表,adminpost

我的帖子表结构是

-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.
}

1 个答案:

答案 0 :(得分:2)

首先,你谈论的是多态关系,由雄辩支持。你应该看看文档。

http://laravel.com/docs/eloquent#polymorphic-relations

其次,您将雄辩的关系与特殊的数据恢复功能混合在一起,这是您应该避免的。我建议你把关系本身与数据恢复功能分开。

此外,如果您想更进一步,请将关系保留在模型中,并将数据恢复功能拆分为存储库对象。