2016-03-20 15 views
0

複数のオプションをチェックするためのチェックリストを作成したいと思います。チェックリストから値を保存すると、 "サービス"テーブルに移動し、その他の詳細は "ポスト"テーブルに移動します。 複数のレコードを1つのフォームから他のテーブルに挿入する方法を教えてください。私はここで立ち往生し、本当に助けが必要です。Yii2複数のレコードを他のテーブルに挿入

機能を作成マイ:あなたは

サービスのための2つのモデルがあり、その下に与えられた

を投稿する場合

<div class="col-lg-5"> 
     <?php $form = ActiveForm::begin(['id' => 'station-form', 'options' => ['enctype' => 'multipart/form-data']]); ?> 
      <?= $form->field($model, 'name') ?> 
      <?= $form->field($model, 'address') ?> 
      <?= $form->field($model, 'phone') ?> 
      <?= $form->field($model, 'price') ?> 
      <?= $form->field($model, 'square') ?> 
      <?= $form->field($model, 'content')->textarea() ?> 
      <?= $form->field($model, 'services_id[]')->checkboxList($items2) ?> 
+0

あなたの質問は混乱しています。 'services'テーブルの' services_id'の複数の行と 'post'テーブルに他の詳細(名前、住所など)の一行を保存します。それはライツですか?両方のテーブル間の接続? –

+0

も表示投稿モデル – scaisEdge

+0

両方のモデルを作成し、フォーム '$ services = new Services();に渡してください。フォームの中に 'フィールド($ services、 'services_id []')を使用すると、$ this-> render( 'create'、['model' => $ model、 'services' => $ services ] - > checkboxList($ items2)?> ' –

答えて

1

public function actionCreate() 
{ 
    $model = new Posts(); 
    if ($model->load(Yii::$app->request->post()) && $model->save()) { 

     return $this->redirect(['category/index']); 
    } else { 
     return $this->render('create', [ 
      'model' => $model, 
     ]); 
    } 
} 

私のフォームを私はそれがログインの詳細について二つのモデル

1. $モデルが含まれ

マイ_form.phpに

を行っていました。 2.連絡先の詳細については$ condact。私は複数のテーブルに挿入している。このように

<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?> 
    <?= $form->field($model, 'username')->textInput(['maxlength' => true]) ?> 
    <?= $form->field($model, 'password')->passwordInput(['maxlength' => true]) ?> 
    <?= $form->field($condact, 'name') ->textInput(['maxlength' => true]) ?> 
    <?= $form->field($condact, 'address')->textArea(['rows' => '6']) ?> 

私のコントローラ

LogindetailsController.php

public function actionCreate() 
{ 
    $model = new Logindetails(); 
    $condact= new Condactdetails(); 

    if ($model->load(Yii::$app->request->post()) && $condact->load(Yii::$app->request->post())) { 
     $model->save(); 
     $condact->logid = $model->logid; 
     if($condact->save()){ 
      return $this->redirect(['view', 'id' => $model->logid]); 
     } 

    } else { 
     return $this->render('create', [ 
      'model' => $model, 
     ]); 
    } 
} 

。 私はこの答えはあなたに役立つと思います。

関連する問題