如何从雄辩关系中的第三个表中获取数据雄辩的多对多关系
Posted
技术标签:
【中文标题】如何从雄辩关系中的第三个表中获取数据雄辩的多对多关系【英文标题】:How to get data from third table in eloquent relationships eloquent many to many relationship 【发布时间】:2021-03-10 03:36:51 【问题描述】:我正在使用 Eloquent ORM,并且我有 Book 模型连接到 BookCategory 模型和 BookCategory 连接到 Category。我面临的问题是如何在 eloquent 关系中包含来自第三个表的数据?
Book
id
name
Category
id
name
type
BookCategory
id
book_id
category_id
【问题讨论】:
【参考方案1】:例如,假设您想要获取某个类别的所有书籍: 假设您的数据透视表名称是 Book_Category 在您的类别模型中:
public function books()
return $this->belongsToMany('App\Models\Book', 'Book_Category', 'category_id', 'book_id');
您可以急切地加载以下类别的书籍:
$categories = Category::get()->load('books');
//OR
$categories = Category::with('books')->get();
【讨论】:
【参考方案2】:如果我理解正确,您正在寻找数据透视属性。这使得中间表的其他列可用。
https://laravel.com/docs/8.x/eloquent-relationships#retrieving-intermediate-table-columns
【讨论】:
以上是关于如何从雄辩关系中的第三个表中获取数据雄辩的多对多关系的主要内容,如果未能解决你的问题,请参考以下文章