テーブル構造とモデルの関係への正しいアプローチを知りたいいくつかのモデルを設定しています。
それぞれの商品にサイズと色のプロパティがあるショップがあるとします。
テーブルproducts
- ID
- size_id
- color_id
- 価格
テーブルsizes
- ID
- 名前
テーブルcolors
- ID
- 名前
モデル
class Product extends Eloquent {
public function size() {
return $this->hasOne('Size', 'id');
}
public function color() {
return $this->hasOne('Color', 'id');
}
}
class Size extends Eloquent {
public function products() {
return $this->belongsTo('Product', 'size_id');
}
}
class Color extends Eloquent {
public function products() {
return $this->belongsTo('Product', 'color_id');
}
}
このようにして、 を使用して製品の色/サイズを簡単にエコーできます{{ Product->size['name'] }}
。また、Eloquent にname ではなくサイズの外部キーsize.id
likeを渡したいです。Product::where('size_id', '5')
size.name
問題:やっ$products = Product::has('size', '=', '5')->get()
ても結果が出ないのに、やって$products = Product::where('size_id', '5')->get()
みる。
私はかなり混乱しています、何がうまくいかなかったのですか?