0

2 つの異なる言語で 2 つの異なる行を同時に表示するために codeigniter フォーム検証ライブラリを使用しようとしていますが、エラーがスローされます。

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

そのエラーに直面することなく、このようにその関数を使用する方法はありますか:

A PHP Error was encountered

Severity: Warning

Message: sprintf(): Too few arguments

Filename: libraries/Form_validation.php

Line Number: 525
4

1 に答える 1

2

core / libraries / form_validation.phpの525行目のsprintf()関数には、2つの引数しかありません。

$message = sprintf($line, $this->_translate_fieldname($row['label']));

最初の引数は、指定された挿入ポイントを持つ文字列である必要があります。次の引数(sprintf関数内)は、挿入ポイントの数と一致する必要があります。そしてcodeigniterは1つだけを使用します。

Codeigniterユーザーガイドから:http://ellislab.com/codeigniter/user_guide/libraries/form_validation.html

If you include %s in your error string, it will be replaced with the "human" name you used for your field when you set your rules.

しかし、あなたの問題の解決策はこれです:

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

%1 $ sは、sprintf()の文字列引数の後の最初の引数を表します。これは、ここの例で非常によく説明されています:http: //dk1.php.net/sprintf

于 2012-11-19T10:51:47.807 に答える