Что мне делать, если я хочу разрешить проверку только английского алфавита?
Создать собственное правило?
var $validate = array( 'login' => array( 'rule' => '/^[a-z0-9]+$/i', 'message' => 'Only letters and integers' ));
http://book.cakephp.org/1.3/view/1179/Custom-Validation-Rules
Вместо этого используйте регулярное выражение .
См. http://www.wiseguysonly.com/2009/11/27/a-workaround-for-the-cakephp-alphanumeric-issue/. У человека в этой статье была другая, но связанная проблема, и его решение совпадает с тем, которое вам нужно.
Основная идея - просто использовать пользовательскийрегулярное выражение.Измените это:
'rule' => 'alphaNumeric'
На это:
'rule' => array('custom', '/^[a-z0-9]*$/i')
Это также должно работать:
'rule' => '/^[a-z0-9]*$/i'
Официальные документы для пользовательских проверок регулярных выражений находятся на http://book.cakephp.org/view/1179/Custom-Validation-Rules#Custom-Regular-Expression-Validation-1180.