10月CMS属于关系保存问题

问题描述

我有两个模型:

  • 品牌
  • 模组

我可以通过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 示例:(品牌可见,我可以保存它们。但问题是同一品牌保存两次以上时)。

enter image description here

使用belongsTo 保存时出错。

enter image description here

我还尝试使用 (belongsTo 和belongsToMany) 在 Brands 模型上创建反向关系,但仍然出现此错误

我应该建立什么类型的关系,以将品牌保存为下拉列表并修复此重复错误

解决方法

如果您为关系使用数据透视表,则应使用 $belongsToMany。数据透视表仅用于多对多关系。

,

我通过将 mod 名称 brand 中的列更改为 brand_id 以及更改belongsTo 关系解决了这个问题。我刚刚删除了密钥,它就像一个魅力。这里不需要数据透视表。

Mods.php

public $belongsTo = [
    'brand' => ['Slasher\Farming\Models\Brands']
];

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...