如何从 eloquent 关系 eloquent 多对多关系中的第三个 table 获取数据
How to get data from third table in eloquent relationships eloquent many to many relationship
我正在使用 Eloquent ORM,我有连接到 BookCategory 模型的 Book 模型和连接到 Category 的 BookCategory。我面临的问题是如何在 eloquent 关系中包含来自第三个 table 的数据?
Book
id
name
Category
id
name
type
BookCategory
id
book_id
category_id
如果我没理解错的话,您正在寻找主元属性。这使得中间 table 的其他列可用。
https://laravel.com/docs/8.x/eloquent-relationships#retrieving-intermediate-table-columns
举个例子,你想要获取某个类别的所有书籍:
假设你的枢轴 table 名称是 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();
我正在使用 Eloquent ORM,我有连接到 BookCategory 模型的 Book 模型和连接到 Category 的 BookCategory。我面临的问题是如何在 eloquent 关系中包含来自第三个 table 的数据?
Book
id
name
Category
id
name
type
BookCategory
id
book_id
category_id
如果我没理解错的话,您正在寻找主元属性。这使得中间 table 的其他列可用。
https://laravel.com/docs/8.x/eloquent-relationships#retrieving-intermediate-table-columns
举个例子,你想要获取某个类别的所有书籍: 假设你的枢轴 table 名称是 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();