私はこの1時間ほど前からこれに苦労してきました。CakePHPの検証は常にtrue
モデル
class User extends AppModel {
public $name = 'User';
public $validate = array(
'email' => array(
'valid' => array(
'rule' => 'email',
'message' => 'The email is not valid'
),
'required' => array(
'rule' => 'notEmpty',
'message' => 'Please enter an email'
)
)
);
}
コントローラ
class UserController extends AppController {
var $uses = array('User');
function index(){
$users = $this->User->find('all');
$this->set(compact('users'));
}
public function add() {
$this->set('title_for_layout', 'Add new user');
if(isset($this->data) && !empty($this->data)) {
$this->User->set($this->data);
$this->log($this->User->invalidFields(), "debug");
if($this->User->validates()){
if ($this->User->save($this->data)) {
$this->Session->setFlash("Added " . $this->data['User']['name']);
$this->redirect('index');
}
} else {
$this->Session->setFlash('There are errors with your form submit, please see below.');
}
}
}
}
ビュー
<?php
echo $this->Form->create('User');
echo $this->Form->input('name', array('label' => 'Name'));
echo "<div class='clear'></div>";
echo $this->Form->input('email', array('label' => 'Email'));
echo "<div class='clear'></div>";
echo $this->Form->button('Reset', array('type' => 'reset'));
echo $this->Form->button('Add Useer', array('type' => 'submit'));
echo $this->Form->end();
?>
しかし、私は電子メールの無効なフィールドを取得することはありませんか?私は何か目障りに見逃したことがありますか?
それはどんな違いをした場合、これはイムはEDITので、それがアプリで/が、アプリ/プラグインに直接座るdoes notの
おかげ
を開発するプラグインです:だから私はこれで苦労してきました今はまだ、そしてまだ喜びはありません。 (var_dump($ this-> User)を使って)モデルの詳細を出力すると、[validate]配列は空です。たとえば:
[validate] => Array
(
)
[validationErrors] => Array
(
)
イムは、私は私の$の検証配列を宣言しているにもかかわらず、これは問題が何であるかである仮定、その何とか上書きされるの?誰もがこれを前に来る?どんな解決策ですか?
シンプルさにはいくつかの欠陥がありますが、それ以外は大丈夫です。すべてのサブグラフで常に "last" => trueを使用します。ああ、そしてcreate()が見つからない場合は – mark
'last' => trueはあなたが望むなら使用するものです - それは必ずしも必要ではありません - 時には、一度に1つではなく、 。 – Dave
どのバージョンのcakephpを使用していますか? – Dave