使用API​​资源进行快速加载与延迟加载

问题描述

您能否建议在以下示例中使用哪个选项。

我当前正在构建一个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 (将#修改为@)