Forms 从表单提交时,如何使用CakePHP将数据附加到数据库?

Forms 从表单提交时,如何使用CakePHP将数据附加到数据库?,forms,cakephp,append,Forms,Cakephp,Append,我一直在开发此应用程序,以便在我的生物实验室中使用,我需要以下内容: 用户将数据添加到文本字段中 当用户想要更新文本字段时,他/她不能更新现有文本,只能将新文本附加到该字段 因此,表单必须包含一个空白文本字段,用户可以输入要附加到现有条目的文本 理想情况下,我还希望在记录每个条目时附加时间戳 正如您所见,它有点像一个实验室笔记本,其中先前输入的数据的完整性很重要 我在第二点上遇到了麻烦,因为我不知道如何创建一个空白文本字段,将数据保存到模型中的相应字段中 以下是我目前拥有的“视图”代码: (我试

我一直在开发此应用程序,以便在我的生物实验室中使用,我需要以下内容:

  • 用户将数据添加到文本字段中
  • 当用户想要更新文本字段时,他/她不能更新现有文本,只能将新文本附加到该字段
  • 因此,表单必须包含一个空白文本字段,用户可以输入要附加到现有条目的文本
  • 理想情况下,我还希望在记录每个条目时附加时间戳
  • 正如您所见,它有点像一个实验室笔记本,其中先前输入的数据的完整性很重要

    我在第二点上遇到了麻烦,因为我不知道如何创建一个空白文本字段,将数据保存到模型中的相应字段中

    以下是我目前拥有的“视图”代码:

    (我试图将现有数据“results\u summary”隐藏在“hidden”元素中。)

    
    更新实验
    目标:
    

    笔记本,第页

    开始日期:

    截止日期:

    项目: 地位: 结果摘要:


    有人知道我如何着手解决这个问题吗?我现在完全迷路了,因为我以前没有编写此代码的经验。

    根据要求3和4,我将以一种方式对数据库进行建模,即每个摘要条目都存储在单独的一行中。你需要一张单独的桌子,像这样:

    id | experiment_id | summary_entry | summary_entry_timestamp
    
    experiment\u id
    experiments
    表上相关id的外键。表/模型是相关的,因此
    实验有许多实验总结条目


    然后,记录到实验结果摘要将是在该表上插入新行的问题

    我必须同意@bfavaretto的观点

    如果看不到数据库结构,就很难确定

    我怀疑你在做什么

    • 这个项目有很多实验
    • 实验有一个实验状态
    你需要一个额外的

    • 实验有许多实验条目
    表中的条目需要有 id int(11),实验\ id int(11),内容文本,创建日期时间

    如果您可以使用DATETIME字段作为时间戳,那么我建议使用**,因为cakephp将自动为您填写

    您不需要更新实验,而是执行添加实验条目

    在“实验输入法”中,您执行以下操作:

    $this->Experiment->id = $this->data['ExperimentEntry']['experiment_id'];
    $latestSummary = $this->Experiment->field('result_summary');
    $latestSummary .= $this->data['ExperimentEntry']['content']; // you may need to add a newline before you append. up to you
    $this->Experiment->save(array(
      'Experiment' => array(
        'result_summary' => $latestSummary
    )));
    
    代码未经测试,因此使用风险自负


    **cakephp 2.0文档中没有创建和修改的对应页面,但这确实有效。我以前试过。

    请说明答案是否足够好。否则,如果你自己找到了,请给出一个更好的答案。
    $this->Experiment->id = $this->data['ExperimentEntry']['experiment_id'];
    $latestSummary = $this->Experiment->field('result_summary');
    $latestSummary .= $this->data['ExperimentEntry']['content']; // you may need to add a newline before you append. up to you
    $this->Experiment->save(array(
      'Experiment' => array(
        'result_summary' => $latestSummary
    )));