蛋糕PHP AUTOMAGIC形式和多个表

问题描述:

我有以下字段的格式:蛋糕PHP AUTOMAGIC形式和多个表

  • 的firstName
  • lastName的
  • EMAILADDRESS

之后(最多)十名/电子邮件领域,像这样

  • FRIENDNAME-1
  • friendEmail-1
  • FRIENDNAME-2
  • friendEmail-2 ... 等

的名字,姓氏& EMAILADDRESS字段将被保存到 '推介' 表,但10名称/电子邮件对将进入包含外键refferal_id的“朋友”表。

通常我使用cakephp'automagic'表单,并在模型中设置我的验证,并做一个$this->model->save();如果失败,我回到我的模型验证规则,并将错误消息反馈回我的表单html。没问题。

虽然我怎样才能做到这一点?我在想,automagic的东西不是要走的路,但是我觉得没有它我会失去很多东西,比如我的模型中的验证和自定义错误消息。

有没有快乐的媒介?我对蛋糕相当陌生,所以我想知道如何使用automagic与多个表的方式。

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')); 
    } 
} 

首先,我真的希望你没有在表20场名为 'FRIENDNAME-1', 'friendEmail-1' 等。你的第二个表应该有3个字段 - 你的referral_id,friendname和friendemail。如果你不想规范化,那么你不需要第二张表。

但是我离题了,保持automagic形式的方法是在你的推荐模型中加入一个“hasMany”和/或在你的“朋友”模型中加入一个“belongsTo”。然后你仍然可以使用FormHelper和Model-> Save()。

+0

:)不,我没有让自己清楚。可怕的硬编码-1,-2的东西只是为了html格式。我将循环遍历它们并将它们作为单独的行保存在我的朋友表中。 – 2009-07-13 13:28:24