【问题标题】:CakePHP pre-filling form data doesn't seem to workCakePHP 预填充表单数据似乎不起作用
【发布时间】:2013-09-17 04:57:35
【问题描述】:

这是我想要完成的:

用户填写表格,保存记录。稍后他们希望“克隆”此记录,但可能需要进行一些调整。这种“克隆”功能应该将他们引导到一个预先填充了先前记录数据的表单,以便他们可以查看、根据需要进行编辑并将其作为新记录提交。

我正在尝试什么:

我已修改我的 add() 函数以接受参数:

function add($cloneid = NULL)

然后创建一个克隆链接,将它们发送到 siteurl/model/add/id_to_clone

然后,我从该模型中获取数据:

$clone_source = $this->Model->findById($cloneid);
$this->data['Model']['field1'] = $clone_source['Model']['field1'];

等等。根据谷歌搜索和其他帖子,这应该可行。但实际发生的情况是,在单击“克隆”链接后,用户被定向并且表单立即提交(未能保存记录,因为它未通过验证)并且用户实际上从未看到该表单。

我做错了什么? (另外我应该注意,存在关系模型,但我认为这不应该是任何问题的原因......我希望)。

【问题讨论】:

  • 如果没有完整的代码,很难确定造成这种情况的原因。您能否使用添加功能、添加表单以及链接“克隆”来更新问题,将用户引导至立即提交的表单?
  • 另外,能不能把$this->data['Model']['field1']改成$this->request->data['Model']['field1'],和然后尝试执行你的代码。
  • @AyoAkinyemi 的建议仅适用于 v2.x 版本。请提及您的蛋糕版本。

标签: cakephp


【解决方案1】:

使用$this->request->data 数组预先填充表单。

为了填充您的表单,您需要为请求设置一些数据。

所以你会更好地使用以下内容。

$this->request->data = $this->Model->findById($id);

【讨论】:

    猜你喜欢
    • 2012-08-14
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    相关资源
    最近更新 更多