计算table2数据并更新到table1 LAravel

时间:2017-06-28 13:07:19

标签: php laravel

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中实现这一目标

1 个答案:

答案 0 :(得分:0)

每当您向table2添加记录时,您需要更新current_rating中的table1值。

示例,

id = 7   
f_id = 5   
rating = 2

您可以使用Table1命令为每个表创建模型,例如Table2artisan

现在,插入如下记录:

$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')]);

希望,这可能对你有帮助。