Laravel 1 个外键,2 个表 Eloquent ORM
Posted
技术标签:
【中文标题】Laravel 1 个外键,2 个表 Eloquent ORM【英文标题】:Laravel 1 foriegn key, 2 tables Eloquent ORM 【发布时间】:2015-02-02 16:04:11 【问题描述】:我有 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() ??)
【问题讨论】:
是的,只有两种方法。也许是userCarts
方法和anonCarts
方法。
【参考方案1】:
Product.php
public function userCarts()
$this->hasMany('\Namespace\UserCart');
public function anonCarts()
$this->hasMany('\Namespace\AnonCart');
【讨论】:
以上是关于Laravel 1 个外键,2 个表 Eloquent ORM的主要内容,如果未能解决你的问题,请参考以下文章