2013-03-16 94 views
0

我是CakePHP的新手,但仍然沒有透徹理解。如果我有一個只有主鍵字段的mysql數據庫,我怎樣才能使用蛋糕烘烤選項爲它做一個輸入字段。 烘焙我嘗試添加這行來查看文件後產生在CakePHP中向主鍵添加一個輸入字段

<fieldset> 
<legend><?php echo __('Add Id'); ?></legend> 
<?php 
     **echo $this->Form->input('identity');** 
?> 
</fieldset> 

它沒有工作...... 什麼是得到一個輸入字段作爲主鍵的正確方法是什麼?

表ID僅在所述數據基礎命名同一性一個場

+0

表格ID在數據庫中只有一個名爲identity的字段 – AlphaWolf 2013-03-16 03:52:41

+0

你想說文本框沒有顯示...? – alwaysLearn 2013-03-16 04:03:32

+0

是的我不能讓輸入文本框出現 – AlphaWolf 2013-03-16 04:37:42

回答

2

CakePHP會,默認情況下,輸出主鍵字段作爲隱藏輸入。您可以通過指定輸入的「類型」重寫它使用,例如:

echo $this->Form->input('identity', array('type' => 'text')); 

然而,CakePHP的支持兩種類型的主鍵; autoNumber整數和GUID/UUID主鍵。手動設置主鍵(例如,使用「用戶名」作爲主鍵,並試圖插入編輯的用戶名)可能會導致問題,因爲CakePHP的假設,如果主是不是在你的表格空的更新應該執行。

http://book.cakephp.org/2.0/en/getting-started/cakephp-conventions.html#model-and-database-conventions

1

更改您的發言到此:

echo $this->Form->input('id', array ('type'=>'text')); 

您現在應該在衆目睽睽的ID。

CakePHP使用id或索引來確定表單條目是否爲新條目(即INSERT)或對現有的extry(即UPDATE)的更新。

如果您使索引可編輯,您將不得不處理此問題,否則最終可能會生成多條記錄,其中一條記錄包含原始記錄,另一條記錄包含更改。

相關問題