gpt4 book ai didi

laravel-4 - 用户、购物车和产品的 Eloquent 关系

转载 作者:行者123 更新时间:2023-12-01 22:23:53 26 4
gpt4 key购买 nike

我想问一下UserCartProduct的 Eloquent 关系。 User 有一个 CartCart 可以有多个 Product

class User {

public function cart()
{
return $this->hasOne(App\Cart::class);
}
}



class Cart {

public function user()
{
return $this->belongsTo(App\User::class);
}

public function products()
{
return $this->hasMany(App\Product::class);
}
}



class Product {

//
}

我的数据库表结构如下:

用户

- id
- email
- username
- password

购物车

- id
- user_id
- product_id
- quantity

产品

- id
- name
- price

这是正确的吗?

最佳答案

不,这是不正确的。

users 表是正确的,但是对于 carts 表,您不应该有 product_id 列,因为它是一对多关系(购物车可以有多个产品),因此您的 carts 表应如下所示:

  • 编号
  • 用户编号
  • 数量

但进一步看,您可能不希望购物车和产品之间存在一对多关系,因为产品可能对所有用户都是通用的,因此您需要多对多关系。

所以你应该定义一个额外的表(数据透视表):

cart_product

- cart_id
- product_id

你应该像这样改变 Cart 模型中的 products 关系:

public function products() 
{
return $this->belongsToMany(\App\Product::class);
}

您显然应该为您的 Product 模型创建相同的反向关系,以备不时之需。

关于laravel-4 - 用户、购物车和产品的 Eloquent 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38036291/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com