问题描述
我有两个模型:
- 品牌
- 模组
我可以通过belongsTo函数显示所有品牌。问题是当我尝试保存同一品牌两次时,出现重复输入错误。
将两个相同品牌保存到数据库时,此 belongsTo 导致重复输入错误。
Mods.PHP
public $belongsTo = [
'brand' => [\Slasher\Farming\Models\Brands::class,'key' => 'id'],];
此belongsToMany 工作,并将数据保存到数据库,但正在生成复选框字段(我只想在一个模式中选择一个品牌)。我正在为这种关系使用数据透视表。
Mods.PHP
public $belongsToMany =[
'brand' =>[
'Slasher\Farming\Models\Brands','table' => 'slasher_farming_mods_brands','order' => 'brand_name'
],];
BelongsTo 示例:(品牌可见,我可以保存它们。但问题是同一品牌保存两次以上时)。
使用belongsTo 保存时出错。
我还尝试使用 (belongsTo 和belongsToMany) 在 Brands 模型上创建反向关系,但仍然出现此错误。
我应该建立什么类型的关系,以将品牌保存为下拉列表并修复此重复错误?
解决方法
如果您为关系使用数据透视表,则应使用 $belongsToMany。数据透视表仅用于多对多关系。
,我通过将 mod 名称 brand
中的列更改为 brand_id
以及更改belongsTo 关系解决了这个问题。我刚刚删除了密钥,它就像一个魅力。这里不需要数据透视表。
Mods.php
public $belongsTo = [
'brand' => ['Slasher\Farming\Models\Brands']
];