【问题标题】:Access and store {field} and {param} tags访问和存储 {field} 和 {param} 标签
【发布时间】:2018-06-18 14:55:55
【问题描述】:

在以下文档中, https://www.codeigniter.com/userguide3/libraries/form_validation.html#callbacks-your-own-validation-methods

有设置消息的回调函数,

public function username_check($str)
        {
                if ($str == 'test')
                {
                        $this->form_validation->set_message('username_check', 'The {field} field can not be the word "test"');
                        return FALSE;
                }
                else
                {
                        return TRUE;
                }
        }

在输出中,{field} 被“输入键”的名称替换。谁能告诉我如何将此 {field} 标记值存储在变量中,因为我不想在我的业务逻辑中使用它。

【问题讨论】:

  • 您可以在form_validation_lang.php 中添加该行,例如$lang['input_1'] = 'name_you_want';,然后您可以像$this->lang->line('language_key'); 一样使用它

标签: codeigniter


【解决方案1】:

{field} 的值取自通过第二个参数传递给set_rules() 的值。例如。

$this->form_validation->set_rules('username', 'Username', 'callback_username_check');

用户名这个词将取代{field}。使用上面产生的错误信息将被读取。

用户名字段不能是单词“test”

【讨论】:

  • OK 很棒的信息。但是有没有办法将它存储在回调函数内部的变量中,而无需将其作为附加参数显式传递。由于 $str 为我提供了密钥的值。我希望它自己在一个变量中的密钥用于我的业务逻辑。我知道一种方法,比如作为附加参数传递,callback_username_check[first_name]。但是我想为开发人员提供一个选项,即如果“键名与数据库中的列名相同,则不需要传递,否则显式传递”。那你能帮忙吗?
猜你喜欢
  • 1970-01-01
  • 2021-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-05
  • 2010-12-16
相关资源
最近更新 更多