我使用Eloquent ORM,我有连接到BookCategory模型的Book模型,BookCategory连接到Category。我面临的问题是如何将第三个表中的数据包含在有说服力的关系中?
Book
id
name
Category
id
name
type
BookCategory
id
book_id
category_id
例如,您想获得某一类别的所有书籍:假设您的数据透视表名称为类别模型中的Book_Category:
public function books()
{
return $this->belongsToMany('AppModelsBook', 'Book_Category', 'category_id', 'book_id');
}
你可以急切地加载分类书籍,比如:
$categories = Category::get()->load('books');
//OR
$categories = Category::with('books')->get();
如果我理解得对,您正在寻找pivot属性。这使得中间表的其他列可用。
https://laravel.com/docs/8.x/eloquent-relationships#retrieving-中间表列