2017-10-04 1 views
0

Haben Sie eine Aktion, wo ich einige Modelle zur gleichen Zeit erstellen beide von ActiveRecord erweitert werden.yii2 gebunden zwei neue Modelle von ID erstellt auf der gleichen Aktion

<?php class User extends ActiveRecord 
{ 

} 
class Balance Extends ActiveRecord 
{ 

} 

Controller-Klasse:

... 
actionSignup(){ 
    $model = new User(); 
    $balance = new Balance(); 
    $user->balance_id = ???; 
    $balance->user_id = $user->balance_id; 
} 

Also, bis ich, keine Modelle speichern kann ich nicht id dieser Modelle erhalten! Der beste Weg, um diese Modelle zu binden, ist die Generierung einer eindeutigen ID im Code und das Hinzufügen einer bestimmten Spalte zur Datenbank.

+0

, sobald Sie das firts Modell Sie die entsprechende ID haben gespeichert haben ..und Sie können auf die zweite .. – scaisEdge

+0

wahr zu Recht anwenden! wenn ich Benutzermodell spare, bevor ich mit Balance arbeite, kann ich Identifikation erhalten! Danke – user4023517

+0

Dies ist das grundlegende Verhalten für activeRecord – scaisEdge

Antwort

0
actionSignup(){ 
    $balance = new Balance(); 
    $balance>save(); 
    $model = new User(); 
    $user->balance_id = $balance->id; 
    $user->save(); 
    $balance->user_id = $user->user_id; 
    $balance->save(); 
} 
+1

Vielen Dank für dieses Code-Snippet, das einige begrenzte, sofortige Hilfe bieten kann. Eine angemessene Erklärung [würde erheblich verbessern] (// meta.stackexchange.com/q/114762) ist ihr langfristiger Wert, indem sie zeigt * warum * das ist eine gute Lösung für das Problem, und würde es für zukünftige Leser mit mehr nützlich machen andere, ähnliche Fragen. Bitte [bearbeiten] Sie Ihre Antwort, um einige Erklärungen hinzuzufügen, einschließlich der Annahmen, die Sie getroffen haben. –

Verwandte Themen