我有一个包含以下字段的表单:
后跟(最多)十个姓名/电子邮件字段,如此
firstName,lastName& emailAddress字段将保存到'referrals'表中,但10个名称/电子邮件对将进入'friends'表,其中包含外键refferal_id。
通常我使用cakephp'automagic'表单,并在模型中设置我的验证,然后执行$this->model->save();
如果失败,我会回到我的模型验证规则上并且错误消息会回到我的模型中形成HTML。没问题。
虽然如何为TWO表做这个?我认为自动化的东西不是可行的方法,但我觉得如果没有它会丢失很多,例如模型中的验证和自定义错误消息。
有幸福的媒介吗?我是一个相当新的蛋糕,所以我想知道是否有一种方法可以使用多个表格的自动化。
答案 0 :(得分:6)
请参阅http://book.cakephp.org/view/84/Saving-Related-Model-Data-hasOne-hasMany-belongsTo
在推荐模型中创建关系:
var $hasMany = array('Friend');
基本上,请确保正确命名字段,例如
echo $form->create('Referral');
echo $form->input('first_name');
echo $form->input('last_name');
echo $form->input('email');
foreach (range(0,9) as $index) {
echo $form->input('Friend.'.$index.'.name');
echo $form->input('Friend.'.$index.'.email');
}
echo $form->end();
在你的推荐控制器中:
function add() {
if(!empty($this->data)) {
$this->Referral->saveAll($this->data, array('validate'=>'first'));
}
}
答案 1 :(得分:2)