我在用cakePHP保存数据时遇到了一个奇怪的问题。我会一边解释一边解释。用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的表格中并且包含spray_jig,那么将会保存数据将被保存。如果我在spray_jig之前填写表单,表单将不会提交。我还没有进行任何数据验证,并且这些字段是VARCHAR的INT和一个TEXT的混合。
这让我感到莫名其妙,你能否提出问题和/或排除故障的好方法?
注: spray_jig是标准的int(11)字段。
数据库允许spray_jig上的空值吗? – Nightwolf 2011-06-17 13:52:38