0

基本的に、私は私の入力を検証するいくつかのコードを持っています(これはその一部です):

    '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'
        ),
    ),

だから私は私の検証ルールをOKにしていて、それらは私がするときに機能します:

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

私の入力フォームはそのとおりです(上記の検証用):

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

しかし、私のデータベースの列はフォーム入力とは異なる名前を持っているため、リンクされていないため、データは保存されないと思います。これを回避してデー​​タを列に保存する方法がわかりませんか?

4

2 に答える 2

1

の配列に特定のキーと値のペアを追加することで、のname属性を指定できます。inputoptionsFormHelper::input

echo $this->Form->input('r_email', array(
    'type' => 'text',
    'label' => 'Email Address',
    'div' => false,
    'name' => 'data[User][field_in_database]'
));
于 2012-07-13T13:58:37.853 に答える
0

$ this-> YourModelName-> expectedfield = $ this-> data[ModelName][r_email]を使用できます

ここで、YourModelNameは、このr_emailを挿入するテーブルを表し、expectedFirledは、r_emailを挿入するフィールドを示します。

あなたがより多くの情報のために答えることができないならば、答えを得ました。

于 2012-07-12T22:19:24.603 に答える