2017-06-28 1 views
0
Table1 

id name  calculated_rating 
1 xyz 2 
2 abc 4.5 
3 zzz 1 
4 ddd  3 
5 eee  2 

Table2 

id f_id rating 
1 1 3 
2 2 4 
3 2 5 
4 3 1 
5 1 2 
6 4 3 
7 5 2 

Ich habe zwei Tabellen ist Tabelle 1 und andere Table2 In table2 F_ID Tabelle1, die foreign_key ist Table1 id primary_key ist Jetzt Table2 hat Bewertung Ich möchte die calculate durchschnittliche Bewertung hinzugefügt in Tabelle 1, wenn Table2 Erhöhung Bewertung es durchschnittlich berechnen und aktualisieren in Tabelle 1 calculated_rating FeldBerechnung table2 Daten und Laravel aktualisiert

Wie dies in Laravel erreichen

+0

Verwenden Sie die avg() - Funktion von mysql –

+0

Bitte verbessern Sie Ihre Frage mit der Abfrage der Table2-Speichermethode; Ich weiß nicht, dass Sie Query Builder oder Eloquent verwenden –

Antwort

0

Jedes Mal, wenn Sie Datensätze zu table2 hinzufügen wie folgt Sie current_rating Wert inaktualisieren müssen 10.

Beispiel,

id = 7 
f_id = 5 
rating = 2 

Sie können für jede Tabelle erstellen Modelle wie Table1 und Table2 mit artisan Befehl. Jetzt

, Insert Datensätze wie folgt aus:

$table2 = new Table2(); 
$table2->f_id = 5; 
$table2->rating = 2; 
$table2->save(); 

Jetzt neue Bewertung wie folgt aktualisiert:

Table1::where('id',$table2->f_id)->update(['calculated_rating'=> Table2::where('f_id',$table2->f_id)->avg('rating')]); 

Hoffnung, dies könnte Ihnen helfen.

Verwandte Themen