我有一个用Laravel 5编写的应用程序。我有一个模型Product
,它使用表products
。
我要在表中存储产品尺寸。目前只有两种尺寸:M
和L
代表中号和大号。
管理员用户可以更新大小,因此我将对此进行下拉。我的问题是;存储尺寸数据的最佳方法是什么?
可能会引入更多尺寸,其他型号也会使用它们。我认为将其作为静态数组添加到Product模型中很好。
答案 0 :(得分:0)
我将创建一个ProductSize
模型并相应地定义其关系。
class Product extends Model
{
public function sizes()
{
return $this->hasMany(ProductSize::class);
}
}
class ProductSize extends Model
{
public function product()
{
return $this->belongsTo(Product::class);
}
}
要访问产品的尺寸,您可以执行以下操作:
Product::find(1)->sizes;
我不知道您的用例,我想虽然它可以与数组一起使用,但这样做没有任何意义。
此外,并非所有尺寸的产品都可用。您将如何处理带有阵列的这种情况?此外,将内容保留在数据库中使查询,生成报告等变得更加容易。
答案 1 :(得分:0)
根据您的目标,您可以创建以下两个模型并为其建立关系。
class Product extends Model
{
//You have only one size for each product
public function size()
{
return $this->belongsTo(Size::class);
}
}
class Size extends Model
{
public function products()
{
return $this->hasMany(Product::class);
}
}