【Web】CodeIgniter框架学习笔记(二)表单验证 validation 用法

本文详细介绍了CodeIgniter框架中的表单验证功能,包括如何在config/autoload.php中加载验证,设置如trim、required、valid_email等验证规则,以及如何实现自定义验证方法如callback_check_username_exists。此外,还探讨了通过is_unique检查字段唯一性和在模型或控制器中定义custom validation的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 表单验证 validation 用法

首先要在 config/autoload.php添加这一句

$autoload['libraries'] = array('form_validation','session');

在 controller里验证规则 

$this->form_validation->set_rules('email', 'email', 'required|valid_email');
$this -> form_validation -> set_rules('password','Password','required');
$this -> form_validation -> set_rules('password2','Confirm Password','matches[password]');
$this -> form_validation -> set_rules('username','Username',
        'trim|required|min_length[3]|max_length[15]|is_unique[users.username]',
        array('is_unique' => 'This username already exists in our records.'));

部分验证规则:

  •  trim: 移除字符串开头和结尾的whitespace
  • required: email不能为空
  • valid_email: 检查是否按照email的格式
  • min_length[3]: 字符串最小长度为3
  • max_length[15]: 字符最大长度为15
  • matches['password']: 检查是否和name='password'的 value一样
  • is_unique[users.username]:检查在users表中 username属性有没有这个属性
  • alpha_numerice: 只能含有数字和字母

拘役的验证规则可查看:https://codeigniter.org.cn/user_guide/libraries/form_validation.html

 

通过array  可以修改提示的message:

array('validation 的验证规则名字' => '提示的信息')

 

 除了用is_unique['users.name']检查名字的唯一性,我们还可以用custom validation

$this -> form_validation -> set_rules('username','Username',
	'trim|required|callback_check_username_exists');

callback_check_username_exists 是一个 custom validation

开头一定要加callback_

方法一:在uer_model里面加check_username_exists的方法

	function check_username_exists($username){
		$this -> form_validation ->set_message('check_username_exists',
			'That username is taken. Please choose a different one');

		if($this -> user_model ->check_username_exists($username)){
			return true;
		} else {
			return false;
		}
	}

 

方法二:在controller里面写

	// check username exists
	public function check_username_exists($username){
		$query = $this ->db ->get_where('users',array('username' =>$username));
		if(empty($query ->row_array())){
			return true;
		} else{
			return false;
		}
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值