我目前正在使用symfony admin-generator来操作数据库。数据库已经创建并正在使用,其中一个与正常设置的symfony数据库所做的不同的是使用varchar作为主键而不是symfony对所有主键使用int的方法。
我遇到的问题是能够在表单中编辑和更新此主键。问题是,当我尝试编辑密钥时,表单会抛出错误并显示“无效”。我可以假设,错误来自新PK与旧PK不匹配的事实。我想我有这些选择:
删除旧模型,创建一个新模型并保存。
不允许他们编辑ID。他们将不得不删除模型并重新创建它。
不允许他们制作或编辑ID,而是从属性中推断出来。
更改数据库体系结构,以便模型具有自动增量整数PK。然后为之前的PK使用唯一的varchar索引。
现在我考虑一下,数字3将是理想的,因为模型作为“名称”字段,可以很容易地从中推断出ID。但是,当它们更新名称时,这仍会导致1中的问题。
我根本不喜欢选项2,我认为我实际上更喜欢4号。我认为4是最简单的方法而且可以完成,但我想至少知道1号是否可以实现未来的参考。
答案 0 :(得分:0)
根据您的评论回复,我会重构数据库。我将创建一个auto_increment整数PK并在slug列上创建一个唯一索引。