2016-10-01 48 views
1

我使用Yii2 PHP框架並利用ActiveField(引導版本)生成表單域,這使用了$template屬性,該屬性包含包裝標籤等。使用ActiveField生成單個表單字段而不使用Yii2中的模板

我使用而其他所有領域模板做想,如果有可能的形式產生單場沒有

我問,因爲我想它生成一個隱藏字段,我目前做的,如:

<?= $form->field($model, 'some_id')->hiddenInput(['value' => $some_id])->label(false); ?> 

這工作得很好,但是因爲它包裝它標準的現場HTML裏面,margin-bottom我已經在課堂上設置了.form-group也被添加到此,並導致不必要的保證金。

我知道我可以自己手動插入此字段,但它不會爲字段獲得正確的表單名稱,例如MyForm[some_id]

回答

1

基於關閉由基蘭Muralee的answer我做了一些更多的調查提供的資料,發現可以去除包裝元素完全,只是輸出的實際input領域,這正是我想要的。

<?= $form->field($model, 'some_id', ['template' => '{input}', 
'options' => ['tag' => false]])->hiddenInput(['value' => $some_id])->label(false); ?> 

注意在加入options陣列內的'tag' => false部分。

注:您必須使用Yii >=2.0.8此作爲有正常工作的錯誤在此之前,表述爲:

ENH#10764:警予\助手\ HTML: :當$ tag屬性爲false或null時,tag()和:: beginTag()返回沒有任何HTML的內容(pana1990)

+1

是的很好的信息,如果你給標籤作爲'跨'那麼領域將被span標籤包圍 –

1

試試這個

<?= $form->field($model, 'some_id', 
      ['template' => '{input}{error}', 
      'options' => ['class' => 'your-class']]) -> 
      hiddenInput(["value" => $someVal, 
         "class" => "your-class" 
       ]) ?> 

選項屬性指定的HTML屬性(name-value對)爲外地容器tag.I認爲這將解決你的問題,因爲margin-bottom值擺上類form-group沒有按」不再影響了。

+0

是的,我知道,但是警告是不會允許驗證領域。 – Brett

+0

@Brett好了我現在通過做一些研究,對答案進行了編輯。檢查這是否是你所需要的。我阻止在輸入以及周圍的div中添加class .form-group。 –

+0

啊,很好。這很好! :) – Brett

相關問題