2013-05-18 17 views
0

的蛋糕烘焙創建的所有意見,其稱,「格式化」 => __()返回以下錯誤:烤的觀點有錯誤vsprintf中

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); 

我調試$翻譯的$ args。

我得到$translated = 'Some Text'$args = array((int)0=>true)

從我看到CakePHP是傳遞的參數vsprintf中正確的號碼。

我怎樣才能解決這個錯誤,或者這是一個錯誤?

我曾嘗試導致錯誤走開: 更改函數調用'format' => __('Some Text') - 省略真實。這導致函數只返回$轉換,跳過vsprintf()調用。

+0

我只注意到調用__()不工作是蛋糕烘焙創建的分頁代碼的一部分,看起來像「形式」 => __('頁%頁面%的網頁%%,可見%的電流%記錄中的%count%總數,從記錄%start%開始,以%end%結尾,true)。調用__()做的工作將更像我上面使用的例子__('some text',true)正常工作,而來自分頁代碼的對__()的調用失敗。 – Jose

+1

爲什麼你沒有提及你正在使用的cakephp版本?這是每個蛋糕相關問題的重要信息。 – mark

+0

我正在使用Cake 2.3.5 – Jose

回答

2

爲什麼在2.x中使用1.x方法? 你從哪裏讀到的? 的documenation狀態,即你不需要真實了,因爲第二個參數返回字符串:

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

應該

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

PS:這是這種方式很長一段時間 - 自2.0(你正在使用2.3)。

+0

烘焙的代碼是在函數調用中放入真實參數的東西。聽起來像是Cake的問題。我不得不返回並更正烘焙的代碼。 – Jose

+0

您自己的自定義烘焙模板?我很確定目前的蛋糕核心模板是好的。否則,請在模板中顯示插入這些真實值的代碼。 – mark

+0

<?PHP的生態\ $這 - > Paginator->計數器(陣列( '格式'=> __('頁%頁面的頁面%%%,顯示出%的電流%記錄總分%計%總數,開始記錄%start%,結束於%end%',true) )); – Jose