这是我的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>
为什么它被隐藏了?
答案 0 :(得分:4)
CakePHP自动确定您不希望用户手动输入ID,因此会为您隐藏ID。
如果您要强制显示ID字段,请将type
设置为text
:
echo $this->Form->input('group_id', array('type' => 'text', 'label' => 'ID'));
答案 1 :(得分:4)
因为默认情况下隐藏了主键输入。 CakePHP在添加为自动增量INT或uuid CHAR时为您创建主键 建议不要手动创建主键。
您可以将隐藏类型更改为文字:
echo $this->Form->input('group_id', array('label' => 'ID', 'type' => 'text'));
答案 2 :(得分:1)
根据您的数据库结构,我想提出一些建议:
您的群组表将group_id作为主键 从数据库中将其设置为auto_increment,无需在添加表单上手动输入该ID,它将自动保存。表单字段根据模型结构生成。