在symfony中更新模型的ID

时间:2011-02-03 18:49:38

标签: forms symfony1 model

我目前正在使用symfony admin-generator来操作数据库。数据库已经创建并正在使用,其中一个与正常设置的symfony数据库所做的不同的是使用varchar作为主键而不是symfony对所有主键使用int的方法。

我遇到的问题是能够在表单中编辑和更新此主键。问题是,当我尝试编辑密钥时,表单会抛出错误并显示“无效”。我可以假设,错误来自新PK与旧PK不匹配的事实。我想我有这些选择:

  1. 删除旧模型,创建一个新模型并保存。

  2. 不允许他们编辑ID。他们将不得不删除模型并重新创建它。

  3. 不允许他们制作或编辑ID,而是从属性中推断出来。

  4. 更改数据库体系结构,以便模型具有自动增量整数PK。然后为之前的PK使用唯一的varchar索引。

  5. 现在我考虑一下,数字3将是理想的,因为模型作为“名称”字段,可以很容易地从中推断出ID。但是,当它们更新名称时,这仍会导致1中的问题。

    我根本不喜欢选项2,我认为我实际上更喜欢4号。我认为4是最简单的方法而且可以完成,但我想至少知道1号是否可以实现未来的参考。

1 个答案:

答案 0 :(得分:0)

根据您的评论回复,我会重构数据库。我将创建一个auto_increment整数PK并在slug列上创建一个唯一索引。