CakePHP Create()未在SQL查询中插入所有字段

CakePHP Create()未在SQL查询中插入所有字段,cakephp,sql-insert,Cakephp,Sql Insert,我试图将信息从表单传递到数据库中的新记录 我的表格: <?php echo "<div>" . $this->Form->create('Machines', array('action' => 'add')) . "</div>"; echo "<div>" . $this->Form->input('name') . "</div>"; echo "<div>" . $th

我试图将信息从表单传递到数据库中的新记录

我的表格:

<?php
    echo "<div>" . $this->Form->create('Machines', array('action' => 'add')) . "</div>";
    echo "<div>" . $this->Form->input('name') . "</div>";
    echo "<div>" . $this->Form->input('type', array('type' => 'select',
        'options' => array(
            'Stand-alone' => 'stand-alone', 'Host' => 'host', 'VM' => 'vm')
        )
    ) . "</div>";
    echo "<div>" . $this->Form->submit() . "</div>";
    echo $this->Form->end();
?>
浏览器正在传递表单数据,如Chrome标题分析所示:

_method:POST
data[Machines][name]:Test1234
data[Machines][type]:VM
以及要保存到的数据库的结构:

    CREATE TABLE IF NOT EXISTS `machines` (
`uid` bigint(255) NOT NULL,
  `name` varchar(255) NOT NULL,
  `status` enum('0','1') NOT NULL DEFAULT '1',
  `os` varchar(255) NOT NULL DEFAULT 'Operating System Unknown',
  `type` enum('vm','host','stand-alone') NOT NULL DEFAULT 'stand-alone',
  `vh_id` bigint(255) NOT NULL DEFAULT '0',
  `scvmm` varchar(255) NOT NULL DEFAULT 'apxlabscvmm',
  `maint` bigint(255) NOT NULL,
  `except` tinyint(2) NOT NULL DEFAULT '0',
  `own` varchar(255) NOT NULL DEFAULT 'apxlab',
  `reboot` bigint(255) NOT NULL,
  `local_ip` varchar(255) DEFAULT '0.0.0.0',
  `rmt_ip` varchar(255) NOT NULL DEFAULT '0.0.0.0' COMMENT 'iLo/iDRAC address',
  `decomm` enum('0','1') NOT NULL DEFAULT '0' COMMENT 'Set to 1 if machine has been decommed'
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;
Machines.name字段索引为唯一

问题是,当我执行插入时,create()函数跳过uid和name字段(将name字段保留为空),而没有按预期将type字段数据传递到数据库(它只保存默认的“独立”)

“成功”插入命令的查询示例:

INSERT INTO `TestDB`.`machines` (`status`, `os`, `type`, `vh_id`, `scvmm`, `except`, `own`, `local_ip`, `rmt_ip`, `decomm`) VALUES (1, 'Operating System Unknown', 'stand-alone', 0, 'apxlabscvmm', 0, 'apxlab', '0.0.0.0', '0.0.0.0', 0)

问题是在你看来,你有
$this->Form->create('Machines',array('action'=>'add'))
,但在您的控制器中,您的模型似乎被称为
Machine
,只需更改视图中的名称即可

Pablo-一旦我按照建议将所有内容进行了复数/非复数化,查询就会按预期添加到数据库中。非常感谢。
INSERT INTO `TestDB`.`machines` (`status`, `os`, `type`, `vh_id`, `scvmm`, `except`, `own`, `local_ip`, `rmt_ip`, `decomm`) VALUES (1, 'Operating System Unknown', 'stand-alone', 0, 'apxlabscvmm', 0, 'apxlab', '0.0.0.0', '0.0.0.0', 0)