0
我的用戶模型:電子郵件驗證錯誤消息 - 的CakePHP
class User extends AppModel {
public $validate = array(
'username' => 'alphaNumeric',
'password' => 'notempty',
'confirmpassword' => 'notempty',
'group_id' => 'notempty',
'email' => array(
'rule' => 'email',
'message' => 'Please provide a valid email address.'
),
);
}
我的用戶註冊視圖:
<div class="users form">
<?php echo $this->Form->create('User'); ?>
<fieldset>
<legend><?php echo __('Register User'); ?></legend>
<?php
echo $this->Form->input('User.username');
echo $this->Form->input('User.password');
echo $this->Form->input('User.confirmpassword', array('type'=>'password', 'label'=>'Confirm password'));
echo $this->Form->input('User.group_id');
echo $this->Form->input('User.email');
?>
</fieldset>
<?php echo $this->Form->end(__('Submit')); ?>
</div>
在控制器我的用戶註冊操作:
public function register() {
if ($this->request->is('post')) {
...
//create mail for verification
$email = new CakeEmail();
...
$email->to($this->data['User']['email']);
$email->send($ms);
}
}
進入/用戶/ register,當我在電子郵件字段中輸入'asdfgh'之類的東西時,我得到默認的CakePHP錯誤消息:
Invalid email: asdfgh
Error: An Internal Error Has Occurred.
代替上述電子郵件字段中的錯誤信息,告訴我:
Please provide a valid email address.
我的問題:如果它真的叫控制器的動作,當用戶輸入的數據是無效的?只有當用戶的輸入數據有效時,纔有辦法在控制器中調用該動作?
我覺得有什麼不對您的控制器。您可以在/tmp/logs/error.log中找到有關此錯誤的更多信息 – noslone
您說得對,問題是控制器中的一個操作,它嘗試發送電子郵件,但在電子郵件無效時失敗。如何在調用控制器中的操作之前驗證用戶的電子郵件? – cawecoy
嘗試 'if(!Validation :: email($ email)){ //無效的電子郵件! }' – noslone