📅  最后修改于: 2023-12-03 15:02:35.195000             🧑  作者: Mango
Laravel makeHidden是一个用于隐藏模型属性的函数。它允许您在获取预期模型时从其属性列表中隐藏某些属性。这在处理应用逻辑可能会用到但不想展示给用户的敏感数据时非常有用。
function makeHidden(string|array $attributes): Model
该函数接受一个属性列表参数作为输入并返回当前模型实例。该列表可以是字符串或字符串数组。属性列表中的所有属性都将在模型实例获取时被隐藏。
以下示例演示如何使用该函数以及其影响:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
$user = User::find(1);
// 隐藏password属性
$user->makeHidden('password');
// 隐藏多个属性
$user->makeHidden(['password', 'remember_token']);
// 查看过滤后的属性
$user->toArray(); // ['name' => 'John', 'email' => 'john@example.com']
?>
Laravel makeHidden是一个非常有用的函数,可以隐藏模型实例中的属性,以保护敏感数据。但是,需要注意的是,该函数不应用于数据库中的查询结果,它只影响模型实例中的属性。所以,当你需要对查询结果进行过滤时,应该使用Laravel 的查询构建器。