【问题标题】: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

【问题讨论】:

    标签: laravel laravel-5 eloquent laravel-6 laravel-7


    【解决方案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

      【讨论】:

        猜你喜欢
        • 2014-05-23
        • 2018-03-28
        • 1970-01-01
        • 2017-10-16
        • 2017-10-17
        • 1970-01-01
        • 2021-05-04
        • 1970-01-01
        • 2012-10-08
        相关资源
        最近更新 更多