Eloquent HasManyDeep 包
发布日期:作者: Eric L. Barnes
Laravel Eloquent HasManyDeep 包是 Laravel Eloquent 的 HasManyThrough
的扩展版本,它允许与无限个中间模型建立关系。它包括对多对多和多态关系的支持。
例如,假设您想要获取特定国家/地区的用户发布的所有帖子的所有评论,它可能看起来像这样
Country → hasMany → User → hasMany → Post → hasMany → Comment
虽然这会变得相当复杂,但使用此包,您可以定义如下关系
class Country extends Model{ use \Staudenmeir\EloquentHasManyDeep\HasRelationships; public function comments() { return $this->hasManyDeep('App\Comment', ['App\User', 'App\Post']); }}
然后,您可以调用 Country::first()->comments
来获取所有评论,并保持熟悉的 Laravel 语法。
为了更进一步,Laravel Daily 的 Povilas Korop 还制作了一个关于此包的评论视频
如果您想了解更多信息,请访问 Github 上的 staudenmeir/eloquent-has-many-deep,readme 中包含完整的文档。