阅读(205) (9)

Laravel 8 隐藏 JSON 属性

2021-07-08 09:45:44 更新

有时要将模型数组或 JSON 中的某些属性进行隐藏,比如密码,则可以在模型中添加 $hidden 属性:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * 数组中的属性会被隐藏
     *
     * @var array
     */
    protected $hidden = ['password'];
} 

注意:隐藏关联时,需使用关联的方法名。

此外,也可以使用属性 $visible 定义一个模型数组和 JSON 可见的白名单。转化后的数组或 JSON 不会出现其他的属性:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * 数组中的属性会被展示
     *
     * @var array
     */
    protected $visible = ['first_name', 'last_name'];
}