所有由蛋糕烘焙创建的视图称为'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()
调用。
答案 0 :(得分:3)
为什么在2.x中使用1.x方法? 你在哪里读到的? 文档说明,你不再需要true作为返回字符串的第二个参数:
'format' => __('Some Text', true)
应该是
'format' => __('Some Text')
PS:这种方式很长一段时间 - 从2.0开始(你使用的是2.3)。