我将 CodeIgniter 2 与DataMapper ORM一起使用。对于用户,我有confirm_password
和confirm_email
字段(以及其他字段),它们都不是数据库中的字段(表users
没有这些字段),但它只是在注册表单上显示:
我也有后端,这两个字段(confirm_password
和confirm_email
)在表单中不存在。
public $validation = array(
'first_name' => array(
'label' => 'lang:common_first_name',
'rules' => array('required', 'trim')
),
'last_name' => array(
'label' => 'lang:common_last_name',
'rules' => array('trim')
),
'email' => array(
'label' => 'lang:common_email',
'rules' => array('required', 'trim', 'unique', 'valid_email')
),
'confirm_email' => array(
'label' => 'lang:common_confirm_email',
'rules' => array('matches' => 'email')
),
'password' => array(
'label' => 'lang:common_password',
'rules' => array('required', 'min_length' => 6, 'encrypt')
),
'confirm_password' => array(
'label' => 'lang:common_confirm_password',
'rules' => array('matches' => 'password')
)
);
如果我没有设置confirm_email
orconfirm_email
字段,验证器将不会触发匹配规则。如果我让它们required,那么没有这些字段的后端会触发confirm_email
and confirm_password
,但它不应该。
- 是否最好包括我们在应用程序中可能拥有的所有可能的验证规则(当然是在模型中)?
- 在后端添加用户时,在控制器中更改这些规则(比如
confirm_email
从数组中删除索引)是个好主意吗?$validation
我很感激任何想法。谢谢