laravel - laravel Eloquent 中的条件关系

标签 laravel laravel-4 eloquent

让我有 3 个表,分别命名为 useradminpost

我的帖子表结构是

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

现在如何根据海报类型值编写与两个表的belongsTo关系

我想在 Post 模型中这样做

public function Author(){
     return $this->belongsTo('User', 'poster_id')->where('poster_type', '1') //poster_type is the field of post table.
}

最佳答案

首先,你说的是多态关系,由 eloquent 支持。您应该查看文档。

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

其次,您将 Eloquent 关系与特殊的数据恢复功能混合在一起,这是您应该避免的。我建议您将关系本身从数据恢复功能中分离出来。

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

关于laravel - laravel Eloquent 中的条件关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25956570/

相关文章:

laravel - 如何获取当年的所有记录?

laravel - 测试 Laravel Eloquent 关系

php - Laravel Eloquent 多重查询

laravel - 无法访问 Laravel 应用程序目录中的 Bower

Laravel Eloquent - 在模型中设置列

php - 使用枢轴表进行 Eloquent 或查询构建器搜索

php - Laravel 工厂为字段返回 0,将数字存储在数据库中

php - 在没有表单的情况下使用 vuejs 和 laravel 上传文件

php - 使用带有 $id 参数的路由后,Laravel 导航栏不工作?

laravel - 迁移到 Laravel 5,路线 :cache throwing exception