Как заставить несколько отношений работать правильно?

В настоящее время я могу вытащить все продукты из таблицы элементов, но я не могу сопоставить sizes_id, так как отношение между ними установлено в таблице SizesToProducts.

Таблицы базы данных выглядят следующим образом:

  • Товары (id, product_id, количество)
  • Товары (идентификатор, название)
  • Размеры (идентификатор, имя)
  • SizesToProducts (id, product_id, size_id, цена)

Вот мои модели:

//--- Item Class
class Item extends \Eloquent  {

    protected $table = '_cart_item';

    function product()
    {
        return $this->hasMany('App\Models\Product','id');
    }

} 

//--- Product Class
class Product extends \Eloquent  {

    protected $table = '_products';

    public function items()
    {
        return $this->belongsTo('Item');
    }

    public function size()
    {
        return $this->hasMany('Product','product_id');
    }
}

//--- Size Class
class Size extends \Eloquent  {

    protected $table = '_sizes';

    public function product()
    {
        return $this->belongsTo('SizeToProduct','sizes_id');
    }

}

//--- SizeToProduct Class
class SizeToProduct extends \Eloquent  {

    protected $table = '_sizes_to_products';

    public function items()
    {
        return $this->belongsTo('Product','sizes_id');
    }

}

person user3120527    schedule 19.12.2013    source источник


Ответы (1)


Вам действительно нужен столбец id для таблицы SizesToProducts? Я не совсем знаком с Laravel, но у него есть many-to-many связь. Может быть, это то, что вы ищете?

person witzawitz    schedule 19.12.2013
comment
Да, обычно это не нужно, но для этой пользовательской тележки это необходимо. Все это было сделано много лет назад с помощью стандартного PHP-кодирования ООП. Поэтому я просто пытаюсь переделать это как побочный проект, чтобы узнать больше о Laravel. - person user3120527; 20.12.2013