Laravel 1外键,2表Eloquent ORM

时间:2014-12-04 17:02:10

标签: php database laravel orm eloquent

我有4张桌子,想把它们绑在一起,但我迷路了。

User
  'id'
  'name' // etc...

Product
  'id'
  'name' // etc...

AnonCart
  'id'
  'unique_id' //tied to session id
  'product_id' // tied to 'id' of Product
  'quantity' //

UserCart
  'id'
  'user_id' //tied to 'id' of User
  'product_id' // tied to 'id' of Product
  'quantity' //

我正试图在Eloquent中为我的Laravel项目建立这些关系

我有以下

user.php的

public function userCarts()
{
    $this->hasMany('\Namespace\UserCart');
}

UserCart.php

public function user()
{
    $this->belongsTo('\Namespace\User');
}
public function product()
{
    $this->belongsTo('\Namespace\Product');
}

AnonUser.php

// doesn't have a user tied to it...
public function product()
{
    $this->belongsTo('\Namespace\Product');
}

最后,我不知道该怎么做。我不知道如何定义产品与购物车的关系

Product.php

public function carts()
{
    $this->hasMany('\Namespace\UserCart'); // AnonCart?? 
}

如何解决将产品链接到2个不同的表但在两个表上具有相同密钥的问题?

是否像拥有2个方法一样简单(anonCarts()和userCarts()??)

1 个答案:

答案 0 :(得分:0)

<强> Product.php

public function userCarts()
{
    $this->hasMany('\Namespace\UserCart');
}

public function anonCarts()
{
    $this->hasMany('\Namespace\AnonCart');
}