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
我有两个表,一个是Table1,另一个是Table2 在table2中,f_id是foreign_key,Table1的id是primary_key 现在Table2有评级我想在Table1中增加计算平均评级,每当Table2增加评级时计算平均值并更新到Table1 calculated_rating字段
如何在laravel中实现这一目标
答案 0 :(得分:0)
每当您向table2
添加记录时,您需要更新current_rating
中的table1
值。
示例,
id = 7
f_id = 5
rating = 2
您可以使用Table1
命令为每个表创建模型,例如Table2
和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')]);
希望,这可能对你有帮助。