Laravel模型属性的隐藏属性、显示属性和临时暴露隐藏属性用法介绍

转自:https://blog.csdn.net/ljwaheng/article/details/83509444

 

隐藏属性:

protected $hidden = ['password'];

显示属性:

protected $visible = ['first_name', 'last_name'];

临时暴露隐藏属性:

return $user->makeVisible('attribute')->toArray();

类似的,如果你想要隐藏给定模型实例上某些显示的属性,可以使用 makeHidden 方法:

return $user->makeHidden('attribute')->toArray();

注意一定要先定义像追加的字段名,这相当于临时给model加字段,所以后面就可以像操作正常字段那样操作。

  1. protected $appends = ['is_admin'];
  2. public function getIsAdminAttribute()
  3. {
  4. return $this->attributes['admin'] == 'yes';
  5. }

运行时追加:

你可以在单个模型上使用 append 方法来追加属性,或者,你可以使用 setAppends 方法为给定模型覆盖整个追加属性数组:

  1. return $user->append('is_admin')->toArray();
  2. return $user->setAppends(['is_admin'])->toArray();

转载于:https://www.cnblogs.com/xiaqiuchu/articles/11429591.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Laravel 9 中,属性修改器可以用于修改一个或多个属性的值。要修改多个属性的值,修改器方法需要接受一个数组或对象作为参数,然后根据需要修改属性的值。 下面是一个例子,假设有一个 User 模型,有两个属性 firstName 和 lastName。现在想要编写一个修改器方法 setFullNameAttribute,用于设置 fullName 属性,该属性是 firstName 和 lastName 的组合。可以这样实现: ``` class User extends Model { public function setFullNameAttribute($value) { $names = explode(' ', $value); $this->attributes['firstName'] = $names[0]; $this->attributes['lastName'] = $names[1] ?? ''; } } ``` 在这个例子中,setFullNameAttribute 方法接受一个字符串参数 $value,然后将其分割为 firstName 和 lastName,分别赋值给对应的属性。注意,这里使用了 null 合并运算符(??),以确保即使没有指定 lastName,也不会出现错误。 现在,可以通过设置 fullName 属性来同时修改 firstName 和 lastName 的值: ``` $user = new User; $user->fullName = 'John Doe'; echo $user->firstName; // output: John echo $user->lastName; // output: Doe ``` 当设置 fullName 属性时,setFullNameAttribute 方法会自动被调用,从而修改 firstName 和 lastName 的值。 需要注意的是,如果要修改多个属性的值,修改器方法的参数需要按照属性名的顺序排列,例如: ``` public function setAttributesAttribute($value) { $this->attributes['attr1'] = $value[0]; $this->attributes['attr2'] = $value[1]; $this->attributes['attr3'] = $value[2]; } ``` 在这个例子中,$value 参数是一个数组,按照 attr1、attr2、attr3 的顺序排列。修改器方法会将数组中的值依次赋值给对应的属性

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值