Laravel 中的 setVisible 和 setHidden 模型方法

Laravel 中的 setVisible 和 setHidden 模型方法

hefengbao 发布于 2023.05.04 ,最后更新于 2023.09.18

你可以使用 hidden 属性来指定哪些属性在模型转为 JSON 时隐藏:

namespace App\Models;
 
use Illuminate\Database\Eloquent\Model;
 
class User extends Model
{
    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = ['api_token'];
}

当你把模型转换为 arrayjson 时,将会隐藏 api_token 属性:

$user = User::find(1);

return $user->toArray();
/*
[
    "id" => 1,
    "name" => "Amit Merchant",
    "email" => "example@example.com",
]
*/

如果向动态的显示或隐藏某(几)个属性,请看下面的两个方法:

setVisible 方法

$user = User::find(1);

return $user->setVisible(['name', 'email'])->toArray();

/*
[
    "name" => "Amit Merchant",
    "email" => "
]
*/

setHidden 方法

$user = User::find(1);

return $user->setHidden(['api_token'])->toArray();
/*
[
    "id" => 1,
    "name" => "Amit Merchant",
    "email" => "example@example.com",
]
*/

参考:
https://www.amitmerchant.com/the-setvisible-and-sethidden-eloquent-methods-in-laravel-9x/

Laravel    Laravel  

hefengbao

暂无个人简介

有0条评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

来源:

https://www.8ug.icu/articles/the-setvisible-and-sethidden-eloquent-methods-in-laravel-qYG1VR1xWz