使用cakePHP保存数据时出现问题

使用cakePHP保存数据时出现问题,php,cakephp,Php,Cakephp,我在用cakePHP保存数据时遇到了一个奇怪的问题。我边走边解释 这是控制器标题,以防其有用: var $helpers = array('Html','Form','Js','Ajax'); var $components = array('RequestHandler'); var $name = 'Parts'; var $paginate = array( 'limit'=>25,

我在用cakePHP保存数据时遇到了一个奇怪的问题。我边走边解释

这是控制器标题,以防其有用:

var $helpers = array('Html','Form','Js','Ajax');
    var $components = array('RequestHandler');
    var $name = 'Parts';
    var $paginate = array(
                        'limit'=>25,
                        'order'=>array('Part.customer'=>'asc')
                        );
这是用于保存表单数据的控制器代码:

//list items for table
    $parts = $this->Paginate('Part');
    $this->set('parts',$parts); ]

//save data
if(!empty($this->data)){    
        if ($this->Part->save($this->data)) {
           $this->Session->setFlash('Part added to database.','default',array('class'=>'flash-success'));            
           $this->redirect(array('action' => 'index'));        
        }else{
           $this->Session->setFlash('Failed to add part to database, please try again.','default',array('class'=>'flash-failure'));            
           $this->redirect(array('action' => 'index'));        
        }
    }
这是我在视图中的表单:

        echo $this->Form->create('Part');
        echo $this->Form->input('customer');
        echo $this->Form->input('part_number');
        echo $this->Form->input('foil');
        echo $this->Form->input('base');
        echo $this->Form->input('base_color');
        echo $this->Form->input('description',array('cols'=>21));
        echo $this->Form->input('moulding');
        echo $this->Form->input('foil_diameter');
        echo $this->Form->input('tool');
        echo $this->Form->input('impressions');
        echo $this->Form->input('spray_jig');
        echo $this->Form->input('prep');
        echo $this->Form->input('pack');
        echo $this->Form->end('Add Part');
现在,如果我在表单中输入信息,包括spray_jig,from将保存,数据将保存。如果我在喷涂前填写表格,表格将不会提交。我还没有进行任何数据验证,字段是VARCHAR的INT和一个文本的混合体

这让我感到困惑,你能提出问题和/或解决问题的好方法吗


注意:spray\u jig是标准的int(11)字段。

我的建议是将应用程序更改为调试模式,查看它正在运行的sql,复制sql并尝试在数据库中运行。

我找到了解决方案-看起来int字段不能有空值。输入所有INT字段后,表单将提交。

数据库是否允许在spray\u jig上为空?您确定数据库中有名为spray\u jig的字段吗?我已检查了所有字段的拼写,它们都可以。所有字段都将NULL设置为no。