问题描述
您能否建议在以下示例中使用哪个选项。
我当前正在构建一个API来获取Places,Place模型包含User和Location模型。
关系设置如下:
class Place extends Model
{
protected $guarded = [];
public function createdBy()
{
return $this->belongsTo(User::class,'created_by','id');
}
public function location()
{
return $this->belongsTo(Location::class);
}
}
选项1:延迟加载:
public function getPlaces()
{
return Place::all()->get();
}
class PlaceResource extends JsonResource
{
public function toArray($request)
{
return [
'id' => $this->id,'createdBy' => (new UserResource($this->createdBy)),'location' => (new LocationResource($this->location)),];
}
}
选项2:急切加载:
public function getPlaces()
{
return Place::with([
'createdBy','location',])
->get();
}
class PlaceResource extends JsonResource
{
public function toArray($request)
{
return [
'id' => $this->id,];
}
}
使用紧急加载选项数据进行逻辑思考应该加载更快,对吗?我已经测试了这两个选项的大约100个位置,但是加载时间似乎是相同的。
更快地加载数据的正确方法(使用选项)是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)