cakephp验证规则未触发
给定以下控制器:cakephp验证规则未触发,php,cakephp,Php,Cakephp,给定以下控制器: class UsersController extends AppController { public function findUser() { ... $this->User->findUser($this->request->query['u']); ... } } 以及以下模型: class User extends AppModel { public $validate
class UsersController extends AppController {
public function findUser() {
...
$this->User->findUser($this->request->query['u']);
...
}
}
以及以下模型:
class User extends AppModel {
public $validate = array(
'username' => array(
'rule' => array('minLength', '8'),
'message' => 'Username must be at least 8 characters'
)
);
public function findUser($username) {
return $this->find('all', array(
'conditions' => array('username' => $username),
));
}
}
例如,如果我在url中键入此内容:
http://example.com/users/findUser?u=a
验证程序不会被触发。为什么?验证器用于插入或更新数据,而不是查询数据。验证器用于插入或更新数据,而不是查询数据。您必须手动执行方法(除非保存数据):
当您插入/更新数据时,验证程序将自动执行。您必须手动执行该方法(除非您正在保存数据):
当您插入/更新数据时,验证程序将自动执行
if ($this->User->validates()) {
// valid
} else {
// not valid
$errors = $this->User->validationErrors;
}