一个Yii2框架把Model转JSON数据更漂亮的方式

2022-10-11 20:42:58 183 0
魁首哥

公司在用 Yii2 作为主力 PHP 开发框架。经常需要在 JSON 里返回 Model 数据。 常用的方法是使用 Model 里的 fields 方法。

但问题是我们需要在不同的 JSON 里对同个对象返回不同的字段。比如列表里里返回 id 和 name,而在详细页里需要返回这个对象的大部分字段。这时候就很折腾,需要自己组装。

但最近在 Laravel 里发现一个更有意思的做法。它的概念叫 Resource,主要代码逻辑是这样的,一个 Resource 负责把 Model 格式化成一个格式的数组。

像刚刚的例子,就有两个 Resource,一个 ListResource 仅返回 id 和 name,另一个 DetailResource 返回详细页需要的字段。

然后需要返回的 JSON 时候这样操作。

return new DetailResource($UserModel);

或是格式化一个对象数组

return ListResource:: collection ($UserModels);

Laravel 这个方法很聪明。可以抄回 Yii2 里头。

收藏
分享
海报
0 条评论
183
上一篇:图文教程:免费注册.PW顶级域名和免费制作一个企业网站 下一篇:「PHP8入门指南」运算符和类型比较

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码