laravel - 如何在 Laravel 中将 'hasManyThrough' 与 3 个以上的表一起使用?

标签 laravel orm eloquent relational-database

docs 中所述当前 hasManyThrough 当你有类似 country > users > posts 的东西时可以使用

结果是 Country::whereName('xx')->posts;这很好,但如果我有更多的东西呢
country > cities > users > posts甚至
country > cities > towns > users > posts
那么你将如何实现类似的东西,以便你可以编写与上面相同的内容
Country::whereName('xx')->posts;Town::whereName('xx')->posts;

最佳答案

我创建了一个 HasManyThrough与无限级别的关系:Repository on GitHub

安装后,您可以像这样使用它:

class Country extends Model {
    use \Staudenmeir\EloquentHasManyDeep\HasRelationships;

    public function posts() {
        return $this->hasManyDeep(Post::class, [City::class, Town::class, User::class]);
    }
}

关于laravel - 如何在 Laravel 中将 'hasManyThrough' 与 3 个以上的表一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34947862/

相关文章:

Laravel:在不同的行中使用不同的 where 条件查询

sql - Laravel - 播种大型 SQL 文件

php - Laravel S3 文件上传 MimeType 问题

javascript - 在 Sails.js 中使用 Waterline ORM 时出现 ER_BAD_FIELD_ERROR

java - 来自扩展同一实体的两个实体的 Hibernate 查询

java - 从现有数据库生成 JDO 对象

laravel - mkdir() : No such file or directory - laravel

events - 用于附加/分离的 Laravel 模型事件

php - Laravel Eloquent 地如何从集合中加载和获取单独数组中的关系

php - 从两个相关的 Illuminate Eloquent 模型中获取数据