2016-08-17 15 views
0

私はあなたの助けが必要な少しの質問をしています。遠くにある3つの関連テーブルからレコードを取得します

以下は私の表とゆるやかな関係です。私はLaravel 5.2を使用しています。

products {id, subcategory_id} 
subcategories {id, category_id} 
category {id, name} 


Product Model: 
public function subcategory(){ 
    return $this->belongsTo('App\Subcategory', 'subcategory_id'); 
} 


Subcategory Model: 
public function product(){ 
    return $this->hasMany('App\Product', 'subcategory_id'); 
} 
public function category(){ 
    return $this->belongsTo('App\Category'); 
} 


Category Model: 
public function subCategory(){ 
    return $this->hasMany('App\Subcategory'); 
} 

public function product(){ 
    return $this->hasManyThrough('App\Product', 'App\Subcategory'); 
} 

category_idを使用して特定のカテゴリからすべてのレコードを取得する方法を教えてください。

ありがとうございました。

+0

はそのために参加します。 –

+0

は何度も試してみることができません。ここに投稿できますか? –

+0

$ products = Category :: findOrFail($ category_id) - > product; –

答えて

1

それはあなたの問題を解決することがあります使用することができます

$products = DB::table("products") 
->join('subcategories', 'subcategories.id', '=', 'products.subcategory_id') 
->join('category ', 'category.id', '=', 'subcategories .category_id') 
->get(); 
+0

あなたのコードは、弟の作品です。脱帽。 私はEloquentメソッドを使用してそれを行うことができます。私はプロジェクト全体で雄弁のみを使用しました –

関連する問題