2016-03-20 4 views
0

Ich möchte eine Checkliste für Benutzer zu prüfen, mehrere Optionen. Und dann, wenn es speichert, geht der Wert von der Checkliste zu den "services" -Tabellen, die anderen Details gehen zur "post" -Tabelle. Wie kann ich mehrere Datensätze in andere Tabellen aus nur einem Formular einfügen. Ich stecke hier fest und brauche wirklich Hilfe.Yii2 mehrere Datensätze in andere Tabelle einfügen

meine Funktion erstellen:

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, 
     ]); 
    } 
} 

Meine Form:

<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

Ihre Frage ist verwirrend. Sie möchten mehrere Zeilen von 'services_id' in der' services' Tabelle und einzelne Zeilen anderer Details (Name, Adresse usw.) in der 'post' Tabelle speichern. Ist das Ryt? Irgendeine Verbindung zwischen beiden Tabellen? –

+0

zeigen Sie auch Sie Posts Modell bitte – scaisEdge

+0

erstellen Sie beide Modelle und übergeben Sie das Formular in Aktion '$ services = new Services(); return $ this-> render ('create', [ 'model' => $ modell, 'services' => $ services ]); 'und im form verwenden' field ($ services, 'services_id []') -> checkboxList ($ items2)?> ' –

Antwort

1

Wenn Sie haben zwei Modelle für

Dienste und Post

Darunter Gegeben Ich hatte

Mein _form.php

Es enthalten zwei für Login-Details

1. $ Modell Models getan. 2. $ condact für Kontaktdetails.

<?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']) ?> 

Mein Controller

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, 
     ]); 
    } 
} 

Auf diese Weise ich in mehrere Tabellen einfügen müssen. Ich denke, diese Antwort wird dir helfen.