Laravel Eloquent与不同列的多对多关系为

时间:2016-09-17 21:10:35

标签: php laravel eloquent

我有以下型号

Category
    id           // we don't want to use this one for the relation
    category_id  // we want to use this

Product
    id

CategoryProduct
    product_id  // points to "id" on products table
    category_id // points to **category_id** on categories table

我的产品型号设置如下(仅限最新版本)。

class Product {
    public function categories() {
        return $this->belongsToMany('Category', 'categories_products', 'category_id');
    }
}

当我尝试获得具有以下类别的产品时......

Product::with('categories')->get();

我得到了错误的类别,因为查询在id上使用categories作为外键。我需要它在类别表上使用category_id

或者我根本没有。我似乎无法如何设置在belongsToMany方法上使用哪些列。

1 个答案:

答案 0 :(得分:0)

试试这个,

    class Product {
          public function categories() {
              return $this->belongsToMany('Category', 'categories_products', 'product_id','category_id');
          }
    }