Я создаю несколько моделей, которые хотят знать правильный подход к структуре таблицы и отношениям модели.
Предположим, у нас есть магазин, содержащий продукты, каждый со свойствами и цветом.
Настольные products
sizes
стола
colors
стола
модели
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'] }}
цвет / размер продукта, используя {{ Product->size['name'] }}
. Кроме того, я хочу передать Eloquent размер внешнего ключа size.id
Например, Product::where('size_id', '5')
а не его имя size.name
.
Проблема: Выполнение $products = Product::has('size', '=', '5')->get()
не дает мне никаких результатов, но делает $products = Product::where('size_id', '5')->get()
.
Я довольно смущен, что пошло не так?