私は5つのテーブルを持っています。私は、ユーザーを介してメインカテゴリ=「テスト」があるすべてのアイテムを返すように望んでいたなどLaravel Eloquent 5テーブル
を
Users
Categories
Products
Product_categories
Order Details
ユーザーがアイテムを購入し、私の注文の詳細テーブルで私は量を格納します。
$user = Auth::user();
return $user->items();
私のユーザモデルでは以下の関係があります。
public function items()
{
return $this->hasMany('App\OrderDetail','user_id')->selectRaw('item_description,count(quantity) as count')->where('item_description','<>','Carriage')->groupBy('item_id')->get();
}
私はここにカテゴリテーブルを関連付けられていませんでした知っているが、私は、すべてのユーザーがアイテムのカテゴリは、「テスト」で詳細を注文引くだろうかと思いまして。この項目は、多くのカテゴリ、つまりproduct_categoriesテーブルに関連付けることができます。
答えを書いた人の後ろではありません私は、モデルを介してこれらのリンクを見始める場所を知りたいと思いますか?
モデル関係の中で関数を実行しなければならないと言っても間違いありませんか?
users
id
name
...
categories
id
name
...
products
id
name
cost
...
category_product
id
category_id
product_id
order_details
id
user_id
cost
...
product_order_detail
id
product_id
order_detail_id
あなたのモデルは、このような構造にする必要があります:
class User extends Model
{
public function orderDetails()
{
return $this->hasMany(OrderDetail::class);
}
}
class Product extends Model
{
public function categories()
{
return $this->belongsToMany(Category::class, 'category_product');
}
public function orderDetails()
{
return $this->belongsToMany(Order::class, 'product_order_detail');
}
}
class Category extends Model
{
public function product()
{
return $this->belongsToMany(Product::class, 'category_product');
}
}
class OrderDetail extends Model
{
public function user()
{
return $this->belongsTo(User::class);
}
public function products()
{
return $this->belongsToMany(Product::class, 'product_order_detail');
}
}
とすべての人のアイテム/製品を取得するためにあなたの要件&構成によれば、あなたのテーブルには、このような構造にする必要があります