2012-04-18 31 views
1

我想了解如何与CakePHPsaveAssociated方法创建嵌套数据没有成功,我已经写了一个模型结构,其中一个Character>hasMany>PropertyGroupPropertyGroup>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

一个关系后,你必须给其他属性组的别名,并将其绑定到模型...

$this->Character->bindModel('PropertyGroup2', array('className' => 'PropertyGroup')); 

然后你引用它们作为的PropertyGroup和PropertyGroup2。

如果您在很多情况下需要多个属性组,只需绑定hasMany数组中的PropertyGroup2,并确保将classMame设置为引用PropertyGroup类。