CakePHP Master/Detail 表单 - 简单问题

Posted

技术标签:

【中文标题】CakePHP Master/Detail 表单 - 简单问题【英文标题】:CakePHP Master/Detail Form - simple Issue 【发布时间】:2015-02-24 02:32:58 【问题描述】:

我正在使用 Cake 构建一个简单的主/详细信息编辑表单,但无法从详细信息记录中获取值来填充表单。

工单 -> 主 WorkorderIssues -> 详细信息

DebugKit 告诉我数据正在从主表和详细表正确返回。

我可以很好地使用主数据填充表单:

表单->输入('workorder_ref');?>

..但同样的方法不适用于详细数据:

表单->input('WorkorderIssues.issue_owner');?>

发布数据:

工单(数组) workorder_id 1 workorder_ref 9212

工作订单问题(数组) 0(数组) 问题 ID 1 issue_workorder_id 1 问题所有者肖恩

我将不胜感激。我可能忽略了一些简单的事情。

非常感谢, 肖恩

【问题讨论】:

添加一些样本。根据您的尝试,它将更容易诊断。谢谢 Lars - 感谢您花一分钟时间查看。我的问题是(像往常一样)语法。为了访问相关数据,我成功地使用了 Form->input('workorderissues.n.fieldname');祝你有美好的一天。 很高兴您找到了答案,但请务必将您的笔记添加为答案并以这种方式进行标记,这样问题就不会永远处于未回答状态。 【参考方案1】:

问题的上下文是主/详细记录的编辑表单,其中 hasMany 从 Workorder 到 WorkorderIssue 关联。

请求中的

主数据可以像往常一样访问: 表单->输入('字段名');只有一条记录。

在我的示例中,主数据(工作订单)的访问方式为:

form->input('workorder_num');

关联/详细数据中的多条记录可以通过以下方式访问:

form->input('workorderissue.0.issue_description');

form->input('workorderissue.0.issue_owner');

form->input('workorderissue.1.issue_description');

form->input('workorderissue.1.issue_owner');

form->input('workorderissue.2.issue_description');

form->input('workorderissue.2.issue_owner');

...整数索引 (0,1,2) 表示每个记录所在的数组元素。

【讨论】:

以上是关于CakePHP Master/Detail 表单 - 简单问题的主要内容,如果未能解决你的问题,请参考以下文章

cakephp : 使用 $validate 数组验证登录表单

CakePHP 中的嵌套表单

CakePHP:防止在 URL 中获取表单字段

CakePHP:向表单添加字段(动态)

cakephp 表单验证成功类/消息

CakePHP 不检查表单验证