我在用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