Laravel学习笔记基础系列--(三十一)Laravel 模型序列化

作者: 温新

分类: 【Laravel】

阅读: 1869

时间: 2021-08-01 10:03:16

作者:温新

时间:2021-07-03

hi,我是温新,一名PHPer

对于返回数据格式,有返回json的,也有返回array的。而查询的结果是集合对象,本篇文章对查询结果集合进行转换。

序列化为数组

toArray将模型结果转为数组

use App\Models\User;
$user = User::first()->toArray();
dd($user);

attributesToArray将模型属性转为数组

$user = User::first()->attributesToArray();

序列化JSON

toJson方法将结果转为JSON

$posts = Post::find(1)
return $posts->toJson();
return $posts->toJson(JSON_PRETTY_PRINT);
// 除了上述2种,可以将结果用字符串返回
return (string)$posts;

转JSON/ARRAY时隐藏属性

转化数据为JSON或ARRAY时,如要隐藏密码等重要属性时,可以在模型中使用$hidden属性。

// app/Models/User.php

protected $hidden = ['password'];

转化数据

$user = User::find(1);
// 打印结果就看不到password了
dd($user->toArray());

**makeVisible()**临时显示隐藏属性

$user = User::find(1);
dd($user->makeVisible('password')->toArray());

makeHidden隐藏某个属性

$user = User::find(1);
dd($user->makeHidden('id')->toArray());

我是温新

每天进步一点点,就一点点

请登录后再评论