2016-06-11 3 views
4

양식 필드를 Yii2에 나란히 놓고 2x2 격자로 배치하고 싶습니다.yii2 양식 필드를 나란히 배치하는 방법

나는 필드는 기본적으로

<?= $form->field($model, 'saleFrom')->widget(DatePicker::className(), [ 
    'options' => ['placeholder' => 'TO'], 
    'pluginOptions' => [ 
     'autoclose' => true, 
     'format' => 'yyyy-mm-dd' 
    ] 
]); ?> 

그러나 할 수있게되었다 모든이에 대한 모든 네 개의 필드를 정렬입니다 날짜 위젯의 일련의 같은

<?php $form = ActiveForm::begin([ 
    'layout' => 'horizontal', 
    'action' => ['index'], 
    'method' => 'get', 
    'fieldConfig' => [ 
     'horizontalCssClasses' => [ 
      'label' => 'col-sm-2', 
      'offset' => 'col-sm-offset-2', 
      'wrapper' => 'col-sm-4', 
     ], 
    ], 
]); ?> 

으로 부트 스트랩/ActiveForm을 사용하고 있습니다 div의 왼쪽 - 수동으로 사용자 정의 CSS를 추가하지 않고 Yii2 옵션을 사용하는 방법을 설명서에서 알 수 없습니다.

답변

5

선호하는 빌드의 레이아웃을 부트 스트랩 그리드를 사용할 수 있습니다.

<?php $form = ActiveForm::begin([ 
    'layout' => 'horizontal', 
    'action' => ['index'], 
    'method' => 'get', 
    'fieldConfig' => [ 
     'horizontalCssClasses' => [ 
      'label' => 'col-sm-2', 
      'offset' => 'col-sm-offset-2', 
      'wrapper' => 'col-sm-4', 
     ], 
    ], 
]); ?> 
    <div class="row"> 
     <div class="col-md-6"> 
      <?= $form->field($model, 'firstname') ?> 
      <?= $form->field($model, 'lastname') ?> 
     </div> 
     <div class="col-md-6"> 
      <?= $form->field($model, 'email') ?> 
      <?= $form->field($model, 'bla') ?> 
     </div> 
    </div> 
<?php ActiveForm::end() ?> 
+0

yii2 마크 업이 자체 부트 스트랩을 추가하기 때문에 작동하지 않습니다. 이유는 부트 스트랩의 yii2 사용을 이해해야합니다. – yoyoma

+0

물론입니다. * 작동합니까 - 시도해 보셨습니까? Yii는'form-group'에 대해서만 마크 업을 생성합니다. 원하는 경우 내부 격자 열을 중첩 할 수 있습니다. 나는이 일을 내 프로젝트에서 끊임없이한다. –

+0

글쎄, 나는 그것을 시도하고 그대로 아무것도 바뀌지 않았다 – yoyoma

0

당신은 당신은 당신이 필요로하는 모든 다른 부트 스트랩 row에서 양식 열을 래핑하는 것입니다

<div class="site-index"> 
    <div class="body-content"> 
     <div class='col-sm-6 col-md-6' id='id'> 
     <?php 
       $form1 = ActiveForm::begin([ 
        'layout' => 'horizontal', 
        'action' => ['index1'], 
        'method' => 'get', 
        'fieldConfig' => [ 
         'horizontalCssClasses' => [ 
          'label' => 'col-sm-2', 
          'offset' => 'col-sm-offset-2', 
          'wrapper' => 'col-sm-4', 
         ], 
        ], 
       ]); 

       ... 
     ?> 

     </div> 
     <div class='col-sm-6 col-md-6' id='id2'> 

       $form2 = ActiveForm::begin([ 
        'layout' => 'horizontal', 
        'action' => ['index2'], 
        'method' => 'get', 
        'fieldConfig' => [ 
         'horizontalCssClasses' => [ 
          'label' => 'col-sm-2', 
          'offset' => 'col-sm-offset-2', 
          'wrapper' => 'col-sm-4', 
         ], 
        ], 
       ]); 

       ... 
     </div> 
    </div> 
</div>   
+0

2 개의 액티브 폼이 필요하지 않습니다. 그리드에 4 개의 필드가 1 개 필요합니다. yii에는 bootstrap div를 설정하지 말고 activeform에서 할 수있는 옵션이 있다고 생각했습니다. – yoyoma

+0

이 확장 기능이 있습니다.하지만 부트 스트랩이있는 간단한 격자가 종종 매우 편리하다고 생각합니다. – scaisEdge

관련 문제