gpt4 book ai didi

php - Codeigniter 2 的自定义表单验证错误消息

转载 作者:可可西里 更新时间:2023-11-01 13:34:33 25 4
gpt4 key购买 nike

我有一个名为“business_id”的下拉菜单。

<select name="business_id"> 
<option value="0">Select Business</option> More options...
</select>

这里是验证规则,用户必须选择一个选项。

$this->form_validation->set_rules('business_id', 'Business', 'greater_than[0]');

问题是错误消息说:业务字段必须包含大于 0 的数字。不是很直观!我想让它说“您必须选择一家公司”。

我试过:

$this->form_validation->set_message('Business', 'You must select a business');

但 CI complete 忽略了这一点。有人对此有解决方案吗?

最佳答案

我对添加 custom form validation error messages in codeigniter 2 有同样的要求(例如“您必须同意我们的条款和条件”)。覆盖 require 和 greater_than 的错误消息自然是错误的,因为它会错误地为表单的其余部分生成消息。我扩展了 CI_Form_validation 类并覆盖了 set_rules 方法以接受新的“消息”参数:

<?php

class MY_Form_validation extends CI_Form_validation
{
private $_custom_field_errors = array();

public function _execute($row, $rules, $postdata = NULL, $cycles = 0)
{
// Execute the parent method from CI_Form_validation.
parent::_execute($row, $rules, $postdata, $cycles);

// Override any error messages for the current field.
if (isset($this->_error_array[$row['field']])
&& isset($this->_custom_field_errors[$row['field']]))
{
$message = str_replace(
'%s',
!empty($row['label']) ? $row['label'] : $row['field'],
$this->_custom_field_errors[$row['field']]);

$this->_error_array[$row['field']] = $message;
$this->_field_data[$row['field']]['error'] = $message;
}
}

public function set_rules($field, $label = '', $rules = '', $message = '')
{
$rules = parent::set_rules($field, $label, $rules);

if (!empty($message))
{
$this->_custom_field_errors[$field] = $message;
}

return $rules;
}
}

?>

使用上面的类,您将生成带有自定义错误消息的规则,如下所示:

$this->form_validation->set_rules('business_id', 'Business', 'greater_than[0]', 'You must select a business');

您也可以在自定义消息中使用“%s”,它会自动填写字段名标签。

关于php - Codeigniter 2 的自定义表单验证错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5839327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com