2017-06-14 6 views
0

同じフォームの動的リストを作成し、Yii2のビューに表示するにはどうすればいいですか(これは、同じ情報を持つ同じオブジェクトのリストとして表示できます)ありがとう。Yii2で同じフォームの動的リストを作成する方法は?

私は/frontend/views/site/example.phpに次のフォームを持っています そのフォームをリストに入れたいと思います。

<div class="site-example"> 
    <h1><?= Html::encode($this->title) ?></h1> 
    <p>Example of a list:</p> 

    <div class="row"> 
     <div class="col-lg-5"> 
      <?php $form = ActiveForm::begin(['id' => 'form-example']); ?> 

       <?= $form->field($model, 'email')->textInput(['readonly' => true, 'value' => $email]) ?> 

       <?= $form->field($model, 'lastname')->textInput(['readonly' => true, 'value' => $lastname]) ?> 

       <?= $form->field($model, 'phone')->textInput(['readonly' => true, 'value' => $phone]) ?> 

      <?php ActiveForm::end(); ?> 
     </div> 
    </div> 

</div> 

答えて

0

これはあなたのcontrollerとします。私は、コントローラ上で次の操作を行うことができ

<?php 

namespace frontend\controllers; 

use Yii; 
use yii\base\Model; 
use yii\web\Controller; 
use frontend\models\YourForm; 

class SiteController extends Controller 
{ 
    public function actionYourAction() 
    { 
     $forms = [new YourForm, new YourForm, new YourForm]; 

     return $this->render('example', [ 
      'forms' => $forms 
     ]); 
    } 
} 

次に、あなたのview

<div class="site-example"> 
    <h1><?= Html::encode($this->title) ?></h1> 
    <p>Example of a list:</p> 

    <div class="row"> 
     <div class="col-lg-5"> 
      <?php foreach ($forms as $index => $form): ?> 
       <?php $form = ActiveForm::begin(['options' => ['id' => "form-example-$index"]]); ?> 

        <?= $form->field($form, "[$index]email")->textInput(['readonly' => true, 'value' => $form->email]) ?> 

        <?= $form->field($form, "[$index]lastname")->textInput(['readonly' => true, 'value' => $form->lastname]) ?> 

        <?= $form->field($form, "[$index]phone")->textInput(['readonly' => true, 'value' => $form->phone]) ?> 

       <?php ActiveForm::end(); ?> 
      <?php endforeach; ?> 
     </div> 
    </div> 
</div> 
+0

下回るだろうか? $モデル=新しいMyForm(); $ forms = [$ model、$ model、$ model]; –

+0

こんにちは@JanBeeck、私はちょうどあなたのケースを試して、それはうまく動作します。 – paul

+0

答えは@paulです。したがって、上記のコードは3つのフォームで動作します。 –

関連する問題