Cake Baker によって作成され、'format' => __() を呼び出すすべてのビューは、次のエラーを返します。
vsprintf(): Too few arguments [CORE/Cake/basics.php, line 565]
basics.php の 565 行を見ました。これは関数 __() の一部です。コードのドキュメントには、この関数の目的は「見つかった場合は翻訳された文字列を返し、見つからなかった場合は送信されたメッセージを返す」ことであると記載されています。
問題の行は次のとおりです。
return vsprintf($translated, $args);
PHPドキュメントでvsprintfを調べました。vsprintf は 2 つの引数を受け入れます。最初はフォーマットで、次は値の配列です。' ビュー内の関数呼び出しは次のとおりです。
'format' => __('Some Text',true);
$translated と $args をデバッグしました。
と を取得$translated = 'Some Text'
し$args = array((int)0=>true)
ます。
私が見るところ、cakephp は正しい数の引数を vsprintf に渡しています。
このエラーを修正するにはどうすればよいですか、それともバグですか?
エラーが消える原因となる私が試したこと: 関数呼び出しを'format' => __('Some Text')
true を省略して変更します。これにより、関数はvsprintf()
呼び出しをスキップして $translated を返すだけになります。