0

cake bake 创建的所有调用 '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。这导致函数只返回 $translated 跳过vsprintf()调用。

4

1 回答 1

3

为什么在 2.x 中使用 1.x 方法?你在哪里读到的?文档指出,您不再需要 true 作为第二个参数来返回字符串:

'format' => __('Some Text', true)

应该

'format' => __('Some Text')

PS:很长一段时间都是这种方式-从2.0开始(而您正在使用2.3)。

于 2013-05-20T08:31:49.473 回答