2012-07-27 49 views
1

這是我add.tcp ...

<?php 

echo $this->Form->create('Group'); 
echo $this->Form->input('group_id', array('label' => 'ID')); 
echo $this->Form->input('group_desc', array('label' => 'Group Description')); 
echo $this->Form->end('Save'); 

?> 

表名:組 表字段:GROUP_ID,group_desc PK:GROUP_ID

這是我的控制器 ...

class GroupsController extends AppController { 
    public $helper = array('Html', 'Form', 'Session'); 
    public $components = array('Session'); 

    public function add() { 
    if ($this->request->is('post')) { 
     if ($this->Group->save($this->request->data)) { 
     $this->session.setFlash(''); 
     $this->redirect(array('action' => 'index')); 
     } 
    } 
    } 
} 

當我在瀏覽器上顯示這一觀點,沒有任何的領域GROUP_ID但有對group_desc,對於這個樣子的 HTML源...

<form action="/cakephp/index.php/groups/add" id="GroupAddForm" method="post" accept-charset="utf-8" name="GroupAddForm"> 
    <div style="display:none;"> 
     <input type="hidden" name="_method" value="POST"> 
    </div><input type="hidden" name="data[Group][group_id]" id="GroupGroupId"> 
    <div class="input text"> 
     <label for="GroupGroupDesc">Group Description</label><input name="data[Group][group_desc]" maxlength="15" type="text" id="GroupGroupDesc"> 
    </div> 
    <div class="submit"> 
     <input type="submit" value="บันทึก"> 
    </div> 
</form> 

爲什麼它被隱藏?

回答

4

CakePHP會自動確定您不希望用戶手動輸入ID,因此會爲您隱藏它。

如果你想強制ID字段被示出,設置typetext

echo $this->Form->input('group_id', array('type' => 'text', 'label' => 'ID')); 
4

由於主鍵輸入默認情況下隱藏。 CakePHP爲您添加自動增量INT或uuid CHAR時創建主鍵 不推薦手動創建主鍵。

您可以更改隱藏式的文字:

echo $this->Form->input('group_id', array('label' => 'ID', 'type' => 'text')); 
+0

歡迎來到SO Ceeram :) – Dunhamzzz 2012-07-27 10:21:19

+0

謝謝,我認爲是時候創建一個帳戶,所以我可以回覆 – Ceeram 2012-07-27 21:43:32

1

按照您的數據庫結構,我要提出建議:

您的分組表已經GROUP_ID作爲主鍵 讓它從數據庫AUTO_INCREMENT和不需要手動將該ID添加到表單上,它會自動保存。表單字段根據模型結構生成。

相關問題