foreach - Schleife & save()

Hallo,

und zwar durchlaufe ich grad ein Array und versuche M:N Tabelle mit Werten zu speichern, jedoch wird immer nur der erste Wert in der Tabelle gespeichert, der Rest wird ignoriert.

updateAll und deleteAll habe ich gefunden, jedoch kein saveAll…


foreach( $x as $la )

{

	$mTOn->croatianID = $la['id'];

	$mTOn->croatian_sentencesID = $so->id;

	$mTOn->save();

}


$mTOn->save();

$mTOn = new $mTOn;

Wenn ich nach der

$mTOn->save $mTOn noch einmal neu initialisiere, dann klappt das wunderbar. Ich meine gelesen zuhaben, das es bei save() eine Besonderheit gibt.


foreach( $x as $la )

{

        $mTOn = new mTOn;

	$mTOn->croatianID = $la['id'];

	$mTOn->croatian_sentencesID = $so->id;

	$mTOn->save();

}

Das sollte doch gehn, oder nicht?

nein, der speichert nur den ersten Wert

wie siehts aus mit


$mTOn = mTOn::model();

nada

nur meine unschöne Lösung hilft


public function actionTest() {

        $userId = Yii::app()->user->id;

        $locations = array(1,2,3,4,5,6);

        for ($i = 0; $i < count($locations); $i++) {

            $commendation = new Commendation;

            $commendation->userId = $userId;

            $commendation->locationId = $locations[$i];

            $commendation->save();

        }


        var_dump(Commendation::model()->findAll());

    }

läuft bei mir ohne Beanstandung.

Wie siehts aus mit etwaigen duplicate Keys?