首页 > 代码库 > laravel ORM序列化
laravel ORM序列化
在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‘];
laravel ORM序列化
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。