Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何同时使用两种不同语言的codeigniter表单验证库?_Codeigniter_Codeigniter 2_Codeigniter Form Helper - Fatal编程技术网

如何同时使用两种不同语言的codeigniter表单验证库?

如何同时使用两种不同语言的codeigniter表单验证库?,codeigniter,codeigniter-2,codeigniter-form-helper,Codeigniter,Codeigniter 2,Codeigniter Form Helper,我试图使用codeigniter表单验证库同时以两种不同的语言显示两行不同的代码,但它抛出了一个错误: $this -> form_validation -> set_message('required', 'Warning %s should not be empty! <br /> Dikkat %s alanı boş bırakılmamalıdır.'); core/libraries/form_validation.php中第525行的sprintf()函数

我试图使用codeigniter表单验证库同时以两种不同的语言显示两行不同的代码,但它抛出了一个错误:

$this -> form_validation -> set_message('required', 'Warning %s should not be empty! <br /> Dikkat %s alanı boş bırakılmamalıdır.');
core/libraries/form_validation.php中第525行的sprintf()函数只有两个参数

$message = sprintf($line, $this->_translate_fieldname($row['label']));
第一个参数必须是具有指定插入点的字符串。以下参数(在sprintf函数中)必须与插入点的数量匹配。而codeigniter只使用一个

从Codeigniter用户指南:

如果在错误字符串中包含%s,则在设置规则时,它将替换为字段中使用的“人员”名称。

但是,您的问题的解决方案是:

$this->form_validation->set_message('required', 'Warning %1$s should not be empty! <br /> Dikkat %1$s alanı boş bırakılmamalıdır.');
$this->form_validation->set_message('required','Warning%1$s不应为空!
Dikkat%1$s alanıboıbırakılmamalıdır.);

%1$s表示sprintf()中字符串参数后的第一个参数。这里的示例对此进行了很好的解释:

我使用了您的建议,但错误仍然相同。遇到了一个PHP错误严重性:警告消息:sprintf():参数太少文件名:libraries/Form_validation.PHP行号:525Aha%2$s不工作,但%1$s工作正常!你是怎么想到这个的?这背后的逻辑是什么?我很好奇座右铭:我已经编辑了答案并链接到php手册。这些例子很好地解释了这一点。
$this->form_validation->set_message('required', 'Warning %1$s should not be empty! <br /> Dikkat %1$s alanı boş bırakılmamalıdır.');