2017-06-28 28 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 

我有兩個表一個是表1和另一種是表2 表2中的f_id是foreign_key目錄一id爲primary_key 現在表2有評分我想添加的計算平均評級表1表2時增加評價它計算平均,並更新到表1 calculated_rating場計算表2數據和更新,以表1 LAravel

如何laravel

+0

使用mysql的avg()函數 –

+0

請用Table2存儲方法的查詢來改進你的問題;我不知道你使用查詢生成器或雄辯 –

回答

0

做到這一點無論何時添加記錄table2像下面你需要更新值10。

實施例,

id = 7 
f_id = 5 
rating = 2 

可以創建爲每個表如Table1Table2使用artisan命令模型。

現在,插入記錄是這樣的:

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

現在更新新的評價是這樣的:

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

希望,這可能會幫助你。