我遇到了Cake PHP代码中的多级关联表。
我有以下型号
有很多学生和不同学生的监护人都有自己的学生。当我创建一个有2名学生的监护人时,必须为StudentFees表创建一个关联的2行。我在添加监护人时成功添加了2名学生,但我不知道如何为学生添加2行费用。我的代码如下。
class Guardian extends AppModel {
public $name = 'Guardian';
public $recursive =2;
public $hasMany = array(
'Student' => array(
'className' => 'Student',
'dependent' => true
)
);
}
class Student extends AppModel {
public $name = 'Student';
public $hasMany = array(
'StudentFee' => array(
'className' => 'StudentFee',
'dependent' => true
)
);
}
class StudentFee extends AppModel {
public $name = 'StudentFee';
public $belongsTo = array(
'Student' => array(
'className' => 'Student',
'dependent' => true
)
);
}
Pl帮助我保存studenFee的详细信息。我使用SaveAssociated函数来保存监护人和学生的详细信息。
答案 0 :(得分:3)
如果我理解正确,这应该可以解决问题:
Model::saveAll()
应该为您处理,并选择适当的方法saveMany
或saveAssociated
。此外,它会自动设置您的foreignKeys,以便将所有内容整齐地插入到数据库中。
$this->Guardian->saveAll(array('Guardian' => array(
[...],
'Student' => array(
0 => array(
[here's your first Student],
'StudentFee' => array(
0 => array(
[here's your first StudentFee]
)
)
)
)
)));
答案 1 :(得分:0)
可以使用saveAll
和saveAssociated
方法。
答案 2 :(得分:0)
您可以尝试使用此方法,我总是在这种情况下使用:
$this->Studentfee->create();
$this->Studentfee->set(array(
'field1' => 'value',
'field2' => 'value'
));
$this->Studentfee->save();
您可以为所有学生费用设置循环