JSON序列化
最后更新于:2022-04-01 21:22:44
|版本|新增功能|
|---|---|
|5.0.10|增加`removeRelation`方法去除所有的关联属性|
|5.0.5|`hidden`、`visible`和`append`方法支持关联属性|
|5.0.4|增加`appendRelationAttr`方法追加关联模型的属性|
可以调用模型的`toJson`方法进行`JSON`序列化
~~~
$user = User::get(1);
echo $user->toJson();
~~~
可以设置无需输出的字段,例如:
~~~
$user = User::get(1);
echo $user->hidden(['create_time','update_time'])->toJson();
~~~
或者追加其它的字段:
~~~
$user = User::get(1);
echo $user->append(['status_text'])->toJson();
~~~
设置允许输出的属性:
~~~
$user = User::get(1);
echo $user->visible(['id','name','email'])->toJson();
~~~
模型对象可以直接被JSON序列化,例如:
~~~
echo json_encode(User::get(1));
~~~
输出结果类似于:
~~~
{"id":"1","name":"","title":"","status":"1","update_time":"1430409600","score":"90.5"}
~~~
或者也可以直接`echo` 一个模型对象,例如:
~~~
echo User::get(1);
~~~
输出的结果和上面是一样的。
## 追加关联模型的属性(V5.0.4+)
`V5.0.4+`版本开始,支持追加一对一关联模型的属性到当前模型,例如:
~~~
$user = User::find(1);
echo $user->appendRelationAttr('profile',['email','nickname'])->toJson();
~~~
`profile`是关联定义方法名,`email`和`nickname`是`Profile`模型的属性。
';