2012-04-04 15 views
1

Ich hasse es, so eine allgemeine Frage zu stellen, und dies ist nicht eine schreiben Sie den Code für mich Frage. Ich brauche nur Hilfe, um in die richtige Richtung zu kommen.Yii, benutze ein Textfeld, um mehrere Modelle zu aktualisieren

Ich werde etwas zu tun, ähnlich wie dies zu: http://www.yiiframework.com/doc/guide/1.1/en/form.table

Aber hier ist das Szenario, meine Modelle Holzprodukte sind. Sie können ein 2x4 8 als eins und 2x4 10 als ein anderes haben. Den ganzen Weg bis zu 24 '. Sie alle haben ein Preisfeld mit einem anderen Preis. ABER sie können durch den linearen Fuß, Brettfuß, tausend Brettfuß ... usw.

Preis festgesetzt werden So ein 2x4 8 'Preis kann 1.92 sein und 2x4 10' Preis kann 2.40 sein. Sie können jedoch den Wert der Preise festlegen, indem Sie .24 als linearen Preis an beide Modelle übergeben. Also .24 * 8 und .24 * 10. Jedes Holzmodell hat ein Feld namens Länge, das hier benutzt werden kann.

Mit Yii, und tun es die Yii-Art ... nicht einige Arbeiten um so wie ich denke. Was wäre der richtige Weg, um ein CActiveTextField mit mehreren Modellen zu verknüpfen? Z.B. eine Gruppe von 2x4 Gegenständen.

Meine Ansicht mit dem Formular am Ende wäre so etwas wie folgt aussehen:

Fir Spruce 
2x4 [.24] [ .22] 
2x6 [.30] [ .32] 

Inbetween [] sind die Eingabefelder, die auf mehrere Modelle verbunden sind ... so die oben links auf alle 2x4s verknüpft werden würde das ist fir

Dank = p

Antwort

0

ich weiß nicht, den richtigen 'YII Weg', aber Sie können wie so einige Modelle aus dem Controller aktualisieren:

/** 
    * Update several models. 
    */ 
    public function actionUpdate() 
    { 
      // post filtering left out for brevity 
      $editFir10 = new Fir10; 
      $editFir8 = new Fir8; 
      $editFir10->costPerLF=$_POST['firCLF']; 
      $editFir8->costPerLF=$_POST['firCLF']; 
      $editFir10->save(); 
      $editFir8->save(); 
      //here you can send several models AFAIK 
      $this->render('update',array(
        'model1'=>$editFir8, 
        'model2'=>$editFir10, 
      )); 
    } 
Verwandte Themen