1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > [ Laravel 5.2 文档 ] Eloquent ORM — 序列化

[ Laravel 5.2 文档 ] Eloquent ORM — 序列化

时间:2022-04-03 18:21:54

相关推荐

[ Laravel 5.2 文档 ] Eloquent ORM — 序列化

后端开发|php教程

[ Laravel 5.2 文档 ] Eloquent ORM — 序列化

后端开发-php教程

eoyoocms 源码,vscode中文显示部分错误,ubuntu 重启系统,tomcat 吞吐量监控,聚表 sqlite,优秀网页设计欣赏图片,低价国内云服务器,shopnc一元云购插件,前端虚拟框架,爬虫缺失值,php注释规范,seo行情好吗,springboot 云计算,手机网站放视频播放器,网页是mdi窗体吗,淘宝客怎样设置模板,织梦后台入侵,jq 页面刷新加载js,高校学生信息管理系统,微信小程序的源代码下载lzw

1、简介

当构建JSONAPI 时,经常需要转化模型和关联关系为数组或 JSON。Eloquent 包含便捷方法实现这些转换,以及控制哪些属性被包含到序列化中。

java版传奇 源码,vscode扩展插件怎么分享,g 安装 ubuntu,tomcat去掉项目名称,sqlite有趣,中国网页设计师网站,thinkphp 数据库导出,服务器那个地方好,选择省市的插件,开源一个轻量级的前端低代码框架,cb爬虫,php源码包,站长工具seo推广,springboot 大并发,织梦tag彩色标签,web网站源码,网页上拉加载更多,html整站模板,织梦后台换banner,登录页面下载模板,教务管理系统组件图,翻唱网程序lzw

2、基本使用

转化模型为数组

餐饮微信小程序源码,vscode能编译c 吗,ubuntu 安装efax,如何隐藏tomcat图标,爬虫js翻页,php cgi 下载,品牌seo接单平台有哪些,微网站后台下载,帝国cms装修模板lzw

要转化模型及其加载的关联关系为数组,可以使用 toArray方法。这个方法是递归的,所以所有属性及其关联对象属性(包括关联的关联)都会被转化为数组:

$user = App\User::with( oles)->first();return $user->toArray();

还可以转化集合为数组:

$users = App\User::all();return $users->toArray();

转化模型为 JSON

要转化模型为 JSON,可以使用 toJson方法,和 toArray一样, toJson方法也是递归的,所有属性及其关联属性都会被转化为 JSON:

$user = App\User::find(1);return $user->toJson();

你还可以转化模型或集合为字符串,这将会自动调用 toJson方法:

$user = App\User::find(1);return (string) $user;

由于模型和集合在转化为字符串的时候会被转化为 JSON,你可以从应用的路由或控制器中直接返回 Eloquent 对象:

Route::get(users,function(){ return App\User::all();});

3、在 JSON 中隐藏属性

有时候你希望在模型数组或 JSON 显示中隐藏某些属性,比如密码,要实现这个,在定义模型的时候设置 $hidden属性:

<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class User extends Model{ /*** 在数组中隐藏的属性** @var array*/ protected $hidden = [password];}

注意:如果要隐藏关联关系,使用关联关系的方法名,而不是动态属性名。

此外,可以使用 visible属性来定义模型数组和 JSON 显示的属性白名单:

<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class User extends Model{ /*** 在数组中显示的属性** @var array*/ protected $visible = [first_name, last_name];}

临时暴露隐藏属性

如果你想要在特定模型中临时显示隐藏的属性,可以使用 makeVisible方法,该方法以方法链的方式返回模型实例:

return $user->makeVisible(attribute)->toArray();

4、追加值到 JSON

有时候,需要添加数据库中没有的字段到数组中,要实现这个功能,首先要为这个值定义一个访问器:

attributes[admin] == yes; }}

定义好访问器后,添加字段名到该模型的 appends属性:

<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class User extends Model{ /*** 追加到模型数组表单的访问器** @var array*/ protected $appends = [is_admin];}

字段被添加到 appends列表之后,将会被包含到模型数组和 JSON 中, appends数组中的字段还会遵循模型中配置的 visible和 hidden设置。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。