为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
Smart猫小萌 2023-09-22 15:19:03
当我创建 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);        }
查看完整描述

2 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

仅加载相关数据始终是更好的做法,因为它可以节省内存和时间。在 laravel 中,您可以使用“select”函数轻松地在查询中完成此操作,例如


return UserResource::collection(User::select('id', 'name')->get());


// Resource file:

    public function toArray($request)

        {

            return parent::toArray($request);

        }

查看完整回答
反对 回复 2023-09-22
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

如果数据库中有数百万条记录,我绝对建议从表中获取特定列。36K以下是我在包含记录的表上运行的一些统计信息

SELECT *  from `app_logs` // + 0.172 sec
SELECT ID FROM `app_logs`// + 0.016 sec

因此,即使只有几千条记录,差异也足够了。

但是,为了简单起见并且不考虑性能,您也可以使用 laravel fancy 语法

User::all()


查看完整回答
反对 回复 2023-09-22
  • 2 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信