在八月份向4.0分支提交了一个提交,以添加reload()方法,但到目前为止,它还没有与较新的Laravel分支合并。
但。。。Laravel 5提供了一个“fresh()”方法,该方法将返回当前模型的新实例。使用Laravel 5.0或更高版本后,您可以像这样重新加载模型:
$model = $model->fresh();
请注意,fresh() 不会直接更新您现有的$model,它只是返回一个新实例,因此我们需要使用“$model = ”。它还接受一个参数,该参数是您希望它预先加载的关系数组。
如果您尚未使用Laravel 5,但想要相同的功能,则可以将此方法添加到模型中:
public function fresh(array $with = array())
{
$key = $this->getKeyName();
return $this->exists ? static::with($with)->where($key, $this->getKey())->first() : null;
}
更新:如果您使用的是 Laravel 5.4.24 或更高版本,现在有一种方法可用于刷新对象的属性和关系,而不是像这样获取新对象。请参阅Jeff Puckett的答案,了解更多细节。$model->refresh()
fresh()