2017-02-05 3 views
0

Ich habe 2 Modelle für 2 Tischewie kombinieren 2 Modell-Anfragen in eine Abfrage

„Sitzungen“ Tabelle:

Sitzungs_ID | Benutzer-ID | andere Felder

"usercash" Tabelle:

user_id | Betrag | andere Felder

diese 2 Tabellen haben keine Art von Beziehungen zueinander.

Ich empfange session_id und mein Ziel ist es, Menge zu erhalten und zu aktualisieren. mit dem reinen SQL kann Menge Auswahl leicht mit einer einfachen Abfrage durch die Verknüpfung von Tabellen von user_id tun.

Es ist möglich, Modelle und Kriterien zu verwenden, um eine Abfrage zu generieren, so dass ich userCashModel-> save() verwenden kann, um den Betrag zu aktualisieren?

zur Zeit im es auf diese Weise mit 2 Abfragen Datenbank tun :(

 $session_model = Sessions::model()->findByAttributes(array('session_id'=>$session_id)); 

     // updating the amount 
     $user_cash = Usercash::model()->findByAttributes(array('userId'=>$session_model->user_id)); 
     $user_cash->realMoney += (double)$amount; 
     $user_cash->save(); 

Antwort

0

In yii1 Sie findBySql

$user_cash = Usercash::model()->findBySql(
" select * from usercash 
    innner join sessions on sessions.user_id = usercash.user_id 
    and sessions.session_id = :act_session_id", array(':act_session_id' => $session_id) 
); 
+0

durch diese Art und Weise kann ich user_cash- $ verwenden könnten> + = $ betrag; $ user_cash-> save() – Eugene

+0

In Ihrem Code ist nicht klar .... Sie beziehen sich auf die Spalte namens $ user_cash-> realMoney und an dieser fügen Sie die var $ Menge .. wenn der Name der Spalten korrekt sind und Sie habe einen richtigen Wert $ betrag ... ja du kannst es machen .. $ user_cash erhalten mit findBySql .. ist ein zugehöriges activemodel .. du filte r Formular db-Tabelle – scaisEdge