【发布时间】:2012-05-04 21:08:46
【问题描述】:
我正在尝试使用更好的设置来更新具有嵌套属性的模型。
现在在我的编辑视图中,我手动定义 textFieldTag 以通过将名称设置为 "myModel[myNestedProperty][#modelID#,#key2id#][name]" 来创建 params 结构
正在更新中...
如果我只使用myModel.update(params.myModel),如果有任何需要删除的元素,我将无法使更新生效
所以我销毁了与 myModel 具有相同 id 的嵌套属性的所有模型,在这种情况下它可以工作。
缺点是如果更新失败,嵌套的属性都没有了。
我尝试在删除它们之前先获取所有模型并.saveing 它们,但由于某种原因这不起作用。
看起来 cfwheel 是为这种与复选框的关系设置的,但我需要它来处理文本字段并在我的表单中选择项目。
更新
我意识到我还有另一个问题。本质上,我想对此进行扩展,以便能够在多个嵌套属性和关系中使用它。
问题在于我为选择下拉菜单设置名称的方式:
name="myModel[myNestedProperty][#modelID#, ][nestedID]"
问题是无法声明第二个 id,因为它将被分配为 id 而不是使用我选择的值。
说实话,这是我一直在努力解决的一个问题。我通过在控制器中重新生成模型来处理它,我只是忘记了我还没有解决这个问题。
有没有办法让这些值根本不被使用,并从结构中动态填充它们?
假设我有(截断)一个名称 tcat[34,0][catID] 或 tcat[34,][catID],(其中 catID 应该是第二个 ID)。
生成的参数的 tcat 结构是
[34,0]{catID = 12,14,18}
或
[34,]{catID = 12,14,18}
我希望参数的 tcat 结构具有多个结构,例如:
[34,12]{tID = 34; catID = 12}
[34,14]{tID = 34; catID = 14}
[34,18]{tID = 34; catID = 18}
有没有办法解决这个问题?
我正在处理许多复合键嵌套属性,如果我可以让这部分单独工作,它会变得容易得多。我知道一种方法是使用 javascript 更新名称,但我认为这将是(非常非常)最后的手段。
【问题讨论】:
-
Daniel - 很抱歉您的问题尚未得到解答。我会联系 Stack Overflow 之外的一个 CF Wheels 人,看看我能否让他给出提示。不过,您的问题相当复杂:)
-
用户如何指示删除?通过复选框?你用的是什么界面元素?需要更多关于您的具体情况的示例。
-
如果字段留空
EQ '',则不添加
标签: coldfusion composite-key cfwheels