我试图了解如何使用CakePHP
和saveAssociated
方法创建嵌套数据但没有成功,我写了一个模型结构Character
> hasMany
> PropertyGroup
和PropertyGroup
> hasMany
> Property
。
如何在添加视图中创建PropertyGroup与其属性之间的关系?
// Character Model
echo $this->Form->input('name', array ('label' => false, 'value' => 'Character name'));
echo $this->Form->input('description', array ('type' => 'textarea', 'label' => false, 'value' => 'Character description'));
// PropertyGroup Model
echo $this->Form->input('PropertyGroup.0.name', array ('label' => false, 'value' => 'Group name'));
echo $this->Form->input('Property.0.name', array ('label' => false, 'value' => 'Property name'));
echo $this->Form->input('Property.0.value', array ('label' => false, 'value' => 'Property value'));
echo $this->Form->end('Add character');
如果我想创建多个PropertyGroups
,我的问题就会出现,所以:
PropertyGroup.0.name
Property.0.name
Property.0.value
Property.1.name
Property.1.value
PropertyGroup.1.name
Property.0.name
Property.0.value
Property.1.name
Property.1.value
如何将表单设置为与多个PropertyGroups
兼容?
我可以通过javascript来通过jQuery克隆我需要的输入并增加id,但我不知道如何使用Properties
来实现。
答案 0 :(得分:0)
在一个关系之后,您必须为其他属性组提供别名并将它们绑定到模型...
$this->Character->bindModel('PropertyGroup2', array('className' => 'PropertyGroup'));
然后将它们引用为PropertyGroup和PropertyGroup2。
如果在许多情况下需要多个属性组,只需在hasMany数组中绑定PropertyGroup2,并确保设置classMame,以便引用PropertyGroup类。