前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >laravel5 怎么获取数组形式的数据

laravel5 怎么获取数组形式的数据

作者头像
全栈程序员站长
发布2022-07-07 14:17:01
1K0
发布2022-07-07 14:17:01
举报
文章被收录于专栏:全栈程序员必看

当构建 JSON API 时,您可能常常需要把模型和关联对象转换成数组或JSON。所以Eloquent里已经包含了这些方法。要把模型和已载入的关联对象转成数组,可以使用 toArray方法:

$user = User::with(‘roles’)->first(); return $user->toArray(); 注意:也可以把整个的模型集合转换成数组: return User::all()->toArray(); 将模型转换成 JSON

要把模型转换成 JSON,可以使用 toJson 方法:

return User::find(1)->toJson(); 从路由中返回模型

注意当模型或集合被转换成字符串类型时会自动转换成 JSON 格式,这意味着您可以直接从路由返回 Eloquent 对象!

Route::get(‘users’, function() { return User::all(); }); 转换成数组或 JSON 时隐藏属性 http://wenda.golaravel.com/question/1663

有时您可能想要限制能出现在数组或 JSON 格式的属性数据,比如密码字段。只要在模型里增加 hidden 属性即可

class User extends Model { protected $hidden = [‘password’]; } 注意: 要隐藏关联数据,要使用关联的方法名称,而不是动态获取的属性名称。 此外,可以使用 visible 属性定义白名单:

protected $visible = [‘first_name’, ‘last_name’]; 有时候您可能想要增加不存在数据库字段的属性数据。这时候只要定义一个获取器即可:

public function getIsAdminAttribute() { return $this->attributes[‘admin’] == ‘yes’; } 定义好获取器之后,再把对应的属性名称加到模型里的 appends 属性:

protected $appends = [‘is_admin’]; 把属性加到 appends 数组之后,在模型数据转换成数组或 JSON格式时就会有对应的值。在 appends数组中定义的值同样遵循模型中 visible和 hidden的设定

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/113097.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年10月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档