我正在创建一个表单视图,我想使用官方选项卡小部件来组织具有选项卡结构的表单字段。
是否可以使用包含活动表单字段的 div 元素的 id(或类)来初始化 Tabs 小部件?
我正在创建一个表单视图,我想使用官方选项卡小部件来组织具有选项卡结构的表单字段。
是否可以使用包含活动表单字段的 div 元素的 id(或类)来初始化 Tabs 小部件?
如何管理它的一个例子是这样做的:
示例代码:
意见/网站/contact.php
<?php
/* @var $this yii\web\View */
$this->title = 'Contact';
use yii\bootstrap\Tabs;
use yii\bootstrap\ActiveForm;
?>
<?php $form = ActiveForm::begin(['id' => 'contact-form']); ?>
<?= Tabs::widget([
'items' => [
[
'label' => 'One',
'content' => $this->render('contact_form1', ['model' => $model, 'form' => $form]),
'active' => true
],
[
'label' => 'Two',
'content' => $this->render('contact_form2', ['model' => $model, 'form' => $form]),
],
]]);
?>
<?php ActiveForm::end(); ?>
意见/网站/contact_form1.php
<?= $form->field($model, 'name') ?>
<?= $form->field($model, 'email') ?>
<?= $form->field($model, 'subject') ?>
意见/网站/contact_form2.php
<?php
use yii\helpers\Html;
use yii\captcha\Captcha;
?>
<?= $form->field($model, 'body')->textArea(['rows' => 6]) ?>
<?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [
'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>',
]) ?>
<div class="form-group">
<?= Html::submitButton('Submit', ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?>
</div>
希望这可以帮助!
只需在您的contact.php 全局$form 顶部添加;一切正常。
我有另一个解决方案:
当我们调用时$form->field($model, 'name')->textInput()
,它会返回类的模型yii\widgets\ActiveField
,所以继续调用这个类的方法$form->field($model, 'name')->textInput()->render()
。它将返回一个字符串,然后您可以将其用于选项卡的内容。我的应用程序中有一个示例代码,用于将多语言翻译为以下代码:
<?php
$items = [];
foreach ($translateModels as $translateModel) {
$tabContent = $form->field($translateModel, "[{$translateModel->code}]name")->textInput()->render();
$items[] = [
'label' => $translateModel->language->name,
'content' => $tabContent,
];
}
?>
<?= Tabs::widget([
'options' => [
'class' => 'nav-tabs',
'style' => 'margin-bottom: 15px',
],
'items' => $items,
]) ?>
也许它有帮助。