id字段不是int和CakePHP

时间:2014-02-25 23:37:46

标签: database cakephp cakephp-2.4

我有一个具有以下结构的数据库表:

CREATE TABLE IF NOT EXISTS `users` (
  `id` varchar(15) NOT NULL,
  `userName` varchar(255) NOT NULL,
  `pass_word` varchar(32) NOT NULL,
  `privilege` char(1) DEFAULT 'C',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1256;

您可能会注意到 id字段不是int。它是varchar。问题在于,当我尝试将此表烘焙到模型,控制器和使用脚手架时,我得到了以下用户视图的新屏幕截图:

enter image description here

您应该注意到没有id字段,我想将其作为varchar输入。同时将id的验证设置为字母数字和notempty,可以防止添加记录。

是否有任何解决方案,无需更改表结构?

1 个答案:

答案 0 :(得分:2)

要使其可见,请在添加视图中添加以下行:

    echo $this->Form->input('id', array('type' => 'text'));

但是,我不会让主键可编辑,这将导致各种问题。如果您有链接到此记录的外键,然后管理员更改主键,会发生什么?坏消息。

我将主键设置为整数自动增量字段,然后为user_code或类似字段设置另一个字段。这将使您仍然拥有可编辑的用户密钥,这不会影响您的关系。