我正在使用CakePHP(2.x)的應用程序,並且我正在重新使用一些設置,每當我創建窗體時,所以我決定擴展默認的FormHelper類,它會自動加載如果沒有其他內容被傳入,則爲默認值(請參閱下面的代碼)。CakePHP擴展FormHelper使錯誤不能正確報告
<?php
class AppFormHelper extends FormHelper
{
public function input($fieldName, $options = array())
{
$defaults = array(
'class' => 'input',
'div' => array(
'class' => 'button-height block-label margin-bottom'
)
);
$options = Set::merge($defaults, $options);
return parent::input($fieldName, $options);
}
}
乍一看,這在我看來像這樣調用$this->AppForm->input('test');
時看起來很完美。但是,當表單提交併出現錯誤時,該錯誤不會顯示在屏幕上。當調用$this->Form->input('test')
並且有一個錯誤,一個div被創建看起來是這樣的:
<div class="error-message">This form had an error</div>
最終,我只是想有一個簡單的方法來複制的表單助手輸入選項,並認爲這是正確的這樣做的方式,但由於它造成的問題,我不知道了。任何人都知道如何讓錯誤再次出現,或者有更好的解決方案來爲FormHelper提供默認選項。
謝謝!
對我來說,這似乎是一個非常合理的方法。不知道這是否會成爲問題,但是您是否將AppFormHelper用於整個表單?我經常使用從FormHelper自己繼承的自定義助手,並且至少在使用SecurityComponent時將核心助手與我的混合帶來問題。也許這裏發生了類似的事情? – nIcO
你是對的。我試圖改變這個領域的其他投入,但不是整個形式。感謝評論,你完全解決了我的問題。 – cyphun