-1

お問い合わせフォームを作成していて、簡単な検証ルーチンをいくつか追加したいと思います。このページのアクションは次のようになります。

public function contact() {
    $this->loadModel('Contact');

    $this->set('pageTitle', 'Contact me');
}

Contactモデルは次のとおりです。

<?php

class Contact extends AppModel {
public $useTable = false;

public $validate = array(
    'name' => array(
        'between' => array(
            'rule' => array('between', 1, 60),
            'message' => 'Between 1 and 60 characters in length'
        )
    ),
    'email' => array(
        'kosher' => array(
            'rule' => 'email',
            'message' => 'Please make sure your email is entered correctly'
        ),
    ),
    'message' => array(
        'between' => array(
            'rule' => array('between', 1, 65000),
            'message' => 'Between 1 and 65000 characters in length'
        )
    )
);

}

そして最後に私のビューページ:

<?php echo $this->Form->create('Contact'); ?>
<?php echo $this->Form->input('name'); ?>
<?php echo $this->Form->input('email'); ?>
<?php echo $this->Form->input('message', array('type' => 'textarea')); ?>
<?php echo $this->Form->end(array('label' => 'Send', 'class' => 'btn btn-primary')); ?>

ただし、間違った値でフォームを送信すると、検証ルーチンが呼び出されず、エラーメッセージが表示されません。

Cakeにフォームを検証させるにはどうすればよいですか?

4

2 に答える 2

0

コントローラーのフォームからデータを挿入/更新する方法については、ドキュメントを参照してください。次のように表示されます。

if ($this->request->is('post')) {
    if ($this->Contact->save($this->request->data)) {
        // handle the success.
    } else {
       $this->Session->setFlash(__('The Contact could not be saved. Please, try again.'));
    }
}
于 2013-02-09T23:50:55.320 に答える
0

連絡先アクションでは、連絡先モデルをロードするだけです。検証を実行するには、関連するモデル メソッドを明示的に呼び出す必要があります。その方法については、マニュアルを正しくお読みください。

于 2013-02-09T19:59:20.600 に答える