查询Laravel雄辩的关系

时间:2017-02-28 16:49:52

标签: php mysql laravel laravel-5 eloquent

我有三张桌子。

  • 类别
  • 产品
  • 品牌

我的类别表与我这样的产品有关系:

var entries = [];
entries.push({
    title: 'Entry 1',
    id: 'test'
});

entries.push({
    title: 'Entry 2',
    id: 'foo'
});

entries.push({
    title: '',
    id: '',
    isSeparator: true
});

entries.push({
    title: 'Entry 3',
    id: 'bar'
});



var context = {
    title: 'Title',
    items: entries,
    x: 0,
    y: 0
}
ContextMenu.open(context, function (ele) {
    console.log('You clicked the entry with an id of ' + ele);
}););

我的产品表与我们的品牌有关系:

public function products()
{
    return $this->belongsToMany('App\Product','product_sub_categories','subcategory_id','product_id');
}

我正在查询类别表,以按特定品牌退回该类别的产品。

例如。

我想看看所有采用菲亚特品牌的汽车类产品。

我尝试过以下但我觉得我错过了什么......

public function manuf()
    {
        return $this->belongsTo('App\Brand','brand');
    }

1 个答案:

答案 0 :(得分:2)

  

按特定品牌退回该类别的产品

我认为您知道品牌ID和类别ID,并且产品和类别有多对多关系(因为您使用的是belongsToMany)且产品属于品牌:

Product::where('brand_id', $brandId)
       ->whereHas('categories', function($q) use(categoryId) {
           $q->where('id', $categoryId);
       })
       ->get();