我是CakePHP的新手,但仍然没有透彻理解。如果我有一个只有主键字段的mysql数据库,我怎样才能使用cake bake选项为它创建一个输入字段。 烘焙后,我尝试将此行添加到生成的视图文件中
<fieldset>
<legend><?php echo __('Add Id'); ?></legend>
<?php
**echo $this->Form->input('identity');**
?>
</fieldset>
它不起作用...... 获取主键的输入字段的正确方法是什么?
表id在数据库中只有一个名为identity的字段
答案 0 :(得分:2)
默认情况下,CakePHP将主键字段输出为隐藏输入。您可以通过指定要使用的输入的“类型”来覆盖它,例如:
echo $this->Form->input('identity', array('type' => 'text'));
但是,CakePHP支持两种类型的主键; autoNumber整数和GUID / UUID主键。手动设置主键(例如,使用'username'作为主键并尝试插入或编辑用户名)可能会导致问题,因为CakePHP假定更新<如果表单中的主要内容不为空,则应执行/ em>。
答案 1 :(得分:1)
将您的陈述改为:
echo $this->Form->input('id', array ('type'=>'text'));
您现在应该拥有完整视图中的ID。
CakePHP使用id
或索引来确定表单条目是新条目(即INSERT)还是对现有extry的更新(即UPDATE)。
如果您使索引可编辑,则必须处理此问题,否则您最终可能会有多条记录,一条记录包含原始记录,另一条记录包含更改记录。