我有一个页面包含一些验证检查。
$this->form_validation->set_rules('category', 'categorie', 'required_fr');
$this->form_validation->set_rules('description', 'omschrijving', 'required');
我的form_validation_lang.php文件如下所示:
$lang['required'] = 'Error message 1';
$lang['required_fr'] = 'Error message 2';
要求是标准值,我已添加required_fr。如果两个验证检查都失败,我只会收到错误消息1'。第二项检查(required_fr)无效。
如果我修改了“必需的”' form_validation_lang.php文件中的值,当表单验证失败时,错误消息也会更改。但是' required_fr'价值显然无法加载。
我也尝试过
$this->form_validation->set_message('required_fr', 'Error Message 2');
在我的功能中,但它也不起作用。 解决方案可能很简单,但我认为我忽视了一些事情。
我页面的重要部分如下所示
<?php echo validation_errors(); ?>
<div class="form-group">
<label for="ticketCategory" class="col-sm-2 control-label"><?php echo ($this->session->userdata('franstalig') == 0) ? "Categorie" : "Catégorie" ?></label>
<div class="col-sm-6">
<select class="form-control" id="ticketCategory" name="category">
<option value="">Gelieve een categorie te selecteren</option>
<?php if (isset($categories) && !empty($categories)): ?>
<?php foreach ($categories as $category): ?>
<option value="<?php echo $category['id'] ?>" <?php echo set_select('category', $category['id']); ?>><?php echo $category['description']; ?></option>
<?php endforeach; ?>
<?php endif; ?>
</select>
</div>
</div>
<div class="form-group">
<label for="ticketDesc" class="col-sm-2 control-label">Omschrijving</label>
<div class="col-sm-6">
<textarea name="description" id="ticketDesc" class="form-control" rows="16"><?php echo set_value('description'); ?></textarea>
</div>
</div>
validation_errors()函数有问题吗?
答案 0 :(得分:0)
替代方式。
尝试更改:
$this->form_validation->set_rules('category', 'categorie', 'required_fr');
要强>
$this->lang->load('form_validation_lang');
$this->form_validation->set_rules('category', 'categorie', 'required', array('required' => $this->lang->line('required_fr')));
答案 1 :(得分:0)
我解决了这个问题。我添加了
public function required_fr($str)
{
if ( ! is_array($str))
{
return (trim($str) == '') ? FALSE : TRUE;
}
else
{
return ( ! empty($str));
}
}
到我班上,并打电话给$this->form_validation->set_rules('category', 'categorie', 'callback_required_fr');
。
这就行了。