【问题标题】:Adding an input field to primary key in CakePHP在 CakePHP 中向主键添加输入字段
【发布时间】:2013-03-16 03:51:24
【问题描述】:

我是CakePHP 的新手,对CakePHP 的理解还不是很透彻。如果我有一个只有一个主键字段的 mysql 数据库,我如何使用 cake bake 选项为其创建一个输入字段。 烘焙后我尝试将此行添加到生成的视图文件中

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

它没有工作...... 获取主键输入字段的正确方法是什么?

表id在数据库中只有一个名为identity的字段

【问题讨论】:

  • 表id在数据库中只有一个名为identity的字段
  • 你想说文本框没有被显示...?
  • 是的,我无法显示输入文本框
  • 您是否先创建了表单.. ?
  • Form->create('Id'); ?>
    Form->input('identity'); ?>
    Form->end(__('Submit')); ?>
    这是你问的吗?我刚开始使用 cakephp

标签: php cakephp primary-key


【解决方案1】:

默认情况下,CakePHP 会将主键字段作为隐藏输入输出。您可以通过指定要使用的输入的“类型”来覆盖它,例如:

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

然而,CakePHP 支持两种类型的主键; autoNumber 整数和 GUID/UUID 主键。手动设置主键(例如,使用“用户名”作为主键并尝试插入编辑用户名)可能会导致问题,因为 CakePHP 假定 update 如果您的表单中的主节点不为空,则应该执行。

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

【讨论】:

    【解决方案2】:

    把你的陈述改成这样:

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

    您现在应该可以看到完整的 id。

    CakePHP 使用id 或索引来确定表单条目是新条目(即 INSERT)还是对现有 extry 的更新(即 UPDATE)。

    如果您使索引可编辑,您将不得不处理此问题,否则您最终可能会拥有多条记录,一条记录原始记录,另一条记录更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多