Laravel 资源 - 它到底是如何工作的?

当我创建 api 并使用 laravel 资源时,是获取完整数据然后选择要在资源文件中发送哪些列更好,还是在从数据库中选择数据时确定应选择哪些列更好?


1)


return UserResource::collection(User::all());


// Resource file:

public function toArray($request)

    {

        return [

            'id' => $this->id,

            'name' => $this->name

        ];

    }

return UserResource::collection(User::all('id', 'name'));


// Resource file:

    public function toArray($request)

        {

            return parent::toArray($request);

        }


Smart猫小萌
浏览 102回答 2
2回答

DIEA

仅加载相关数据始终是更好的做法,因为它可以节省内存和时间。在 laravel 中,您可以使用“select”函数轻松地在查询中完成此操作,例如return UserResource::collection(User::select('id', 'name')->get());// Resource file:    public function toArray($request)        {            return parent::toArray($request);        }

慕桂英546537

如果数据库中有数百万条记录,我绝对建议从表中获取特定列。36K以下是我在包含记录的表上运行的一些统计信息SELECT *  from `app_logs` // + 0.172 sec SELECT ID FROM `app_logs`// + 0.016 sec因此,即使只有几千条记录,差异也足够了。但是,为了简单起见并且不考虑性能,您也可以使用 laravel fancy 语法User::all()
打开App,查看更多内容
随时随地看视频慕课网APP