如何将输入数据保存到不同名称的数据库列?

如何将输入数据保存到不同名称的数据库列?

问题描述:

基本上,我有一些代码,验证我的输入(这是它的一部分):如何将输入数据保存到不同名称的数据库列?

'r_email' => array(
     'exist' => array(
      'rule' => 'checkEmailExist', 
      'message' => 'That email has already been used.' 
     ), 
     'required' => array(
      'rule' => array('notEmpty'), 
      'message' => 'The email field must not be blank.' 
     ), 
     'valid' => array(
      'rule' => 'email', 
      'message' => 'You must enter a valid email address' 
     ), 
    ), 

所以我要在确定我的验证规则和他们的工作时,我做的事:

if ($this->User->save($this->request->data)) { 

我输入形式是这样(对于上述验证):

echo $this->Form->input('r_email', array(
    'type' => 'text', 
    'label' => 'Email Address', 
    'div' => false 
)); 

但在我的数据库中的列具有不同的名称的形式输入,因此,我假定数据将不保存因为它没有链接。我不知道我如何解决这个问题,并将数据保存到我的专栏?

+0

指定inputname属性如果你比你的数据库列有不同的命名输入,那么我相信你不使用蛋糕形式的帮手。如果您使用表单助手,让它命名字段,那么您将不必担心将数据重新映射到模型 – keithhatfield 2012-07-12 17:48:15

+0

我正在使用表单助手。但是我对同一个模型中的用户名,密码等有不同的验证规则。例如,我想在注册时检查用户是否已经存在,但登录时我不需要。 – Peza 2012-07-12 17:51:04

可以使用$这 - > YourModelName-> expectedfield = $这个 - >数据[MODELNAME] [r_email]

这里YourModelName将代表哪个表,你会插入这个r_email和expectedFirled表明,该场你会插入r_email。

得到答案,如果你不能,你可以回复更多的信息。

您可以通过添加特定的键/值对的options阵列的FormHelper::input

echo $this->Form->input('r_email', array(
    'type' => 'text', 
    'label' => 'Email Address', 
    'div' => false, 
    'name' => 'data[User][field_in_database]' 
));