laravel ORM序列化

本文介绍如何在 Laravel 项目中使用 Eloquent ORM 进行序列化操作,包括序列化为数组和 JSON 的方法,以及如何通过定义 $hidden 和 $visible 属性来控制序列化的字段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在laravel项目 常常需要把eloquent ORM序列化为数组或者json,Eloquent 提供了便捷方法以便实现这些转换,以及控制哪些属性被包含到序列化中。

1.序列化为数组

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

2.序列化为json $user = App\User::find(1);return $user->toJson();

3.在json中隐藏属性 

在模型中定义$hidden属性 例如  protected $hidden = ['password'];

同理通过定义$visible 属性 来控制模型中模型数组或者json中的属性白名单。例如 protected $visible = ['first_name', 'last_name'];

4.若要在模型中临时的暴露某个属性  return $user->makeVisible('attribute')->toArray();

5.若要追加数据库不存在的字段到数组或者json返回值时候 需要先定义一个访问器 

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * 为用户获取管理员标识
     *
     * @return bool
     */
    public function getIsAdminAttribute()
    {
        return $this->attributes['admin'] == 'yes';
    }
}
定义好访问器后,添加字段名到该模型的 appends 属性
 protected $appends = ['is_admin'];



转载于:https://www.cnblogs.com/zhangwei0909/p/6800496.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值