저는 지난 몇 시간 동안이 문제로 어려움을 겪어 왔으며 신선한 눈이 도움이되는지 궁금합니다.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();
?>
하지만 이메일 유효하지 않은 필드를 결코? 나는 눈부신 것을 놓친 적이 있습니까?
그것은 어떤 차이가있는 경우, 이것은 필자가 앱에 직접 앉아 나던 그래서 개발 플러그인입니다 /하지만 응용 프로그램에서/플러그인
감사
편집 : 그래서 나는이 고민 했어요 지금은 여전히 기쁨이 없습니다. 내가 (var_dump ($ this-> User)를 사용하여) 모델 정보를 출력 할 때, [validate] 배열은 비어 있습니다. 예를 들어 :
[validate] => Array
(
)
[validationErrors] => Array
(
)
임 내 $의 유효성을 배열을 선언 했음에도 불구하고,이 문제가 무엇이고 염치는 어떻게 든 덮어 쓰기? 누구든지 전에 이것을 보았습니까? 어떤 해결책?
단순함과 관련하여 몇 가지 결함이 있지만 그 외의 것은 괜찮습니다. 한 가지만 : 모든 하위 규칙에 대해 항상 "last"=> true를 사용하십시오. 오, 그리고 create()가 누락되었습니다. – mark
'last'=> true는 원할 경우 사용합니다 - 확실히 필요하지 않습니다 - 사용자에게 한 번에 한 필드가 아닌 한 번에 필드의 모든/모든 문제를 표시하는 것이 좋습니다. . – Dave
어떤 버전의 cakephp를 사용하고 있습니까? – Dave