您可以創建自定義行格式來定義字段將如何呈現(如果您還沒有使用自定義模板)。我發現它在這forum thread。
一個很好的解決方案可能是壓倒一切的formatRow
方法:
public function formatRow($label, $field, $errors = array(), $help = '', $hiddenFields = null)
{
if(strip_tags($label) == '__UNSET__')
{
return strtr($this->getRowFormat(), array(
'%label%' => null,
'%field%' => $field,
'%error%' => $this->formatErrorsForRow($errors),
'%help%' => $this->formatHelp($help),
'%hidden_fields%' => is_null($hiddenFields) ? '%hidden_fields%' : $hiddenFields,
));
}
else
{
return strtr($this->getRowFormat(), array(
'%label%' => $label,
'%field%' => $field,
'%error%' => $this->formatErrorsForRow($errors),
'%help%' => $this->formatHelp($help),
'%hidden_fields%' => is_null($hiddenFields) ? '%hidden_fields%' : $hiddenFields,
));
}
}
然後,設置__UNSET__
爲標籤不應該有他們的標籤渲染這些領域。
或者甚至根據標籤名稱使用自定義行格式以防止輸出標籤的封閉標籤。
行格式看起來像這樣<div >%field%%help%%error%%hidden_fields%</div>
,並且會通過此代替$this->getRowFormat()
。
這是什麼,我已經上面寫的代碼版本的兩行... – TheHippo 2009-12-15 09:55:39
對不起我打算輸入一個空格,如果你輸入一個空字符串,它將不起作用(正如你已經知道的)。這樣,它會渲染
,但這仍然呈現標籤標籤... – TheHippo 2009-12-15 18:44:04