问题描述:

问题代码如下:

$post = App\Post::find(1);
//dd($post->comments()->count()) 输出 1
$comment = $post->comments()->create([
    'message' => 'A new comment.',
]);
//dd($post->comments()->count()) 输出仍然为 1

这里采用关联模型批量赋值,post模型在第一次检索模型是已经加载,第二次调用时,直接使用的是第一次检索的post及关联的comments.

解决方法

文档中有如下 重新加载模型的方法。
refresh 方法使用数据库中的新数据重新赋值现有模型。此外,已经加载的关系会被重新加载:

$flight = App\Flight::where('number', 'FR 900')->first();

$flight->number = 'FR 456';

$flight->refresh();

$flight->number; // "FR 900"

这里,想要统计关联模型赋值之后的结果,应该重载模型。尤其是涉及到统计订单支付明细及待支付金额时,一定要注意。

Last modification:June 30th, 2019 at 09:14 am