- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Eloquent ORM ―― 调整器
Eloquent ORM ―― 调整器
Eloquent ORM —— 访问器修改器
1、简介
访问器属性。例如,你可能想要使⽤Laravel加密器对存储在数据库中的数据进⾏加
密,并且在Eloquent 型中访问时⾃动进⾏解密。
除了⾃定义访问器和修改器,Eloquent还可以⾃动转换⽇期字段为Carbon实例甚⾄将
⽂本转换为JSON 。
2、访问器 修改器
2.1 定义访问器
要定义⼀个访问器,需要在 型中创建⼀个getFooAttribute⽅法,其中Foo是你
想要访问的字段名 (使⽤驼峰式命名规则)。在本例中,我们将会为first_name属
性定义⼀个访问器,该访问器在获取first_name的值时被Eloquent ⾃动调⽤:
?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class ser extends Model{
/**
* 获取⽤户的名字
*
* @param string $value
* @return string
*/
public function getFirstNameAttribute($value)
{
return ucfirst($value);
}
}
正如你所看到的,该字段的原⽣值被传递给访问器,然后返回处理过的值。要访问该
值只需要简单访问first_name即可:
$user = App\ ser::find(1);
$firstName = $user-first_name;
2.2 定义修改器
要定义⼀个修改器,需要在 型中定义setFooAttribute⽅法,其中Foo是你想要
访问的字段 (使⽤驼峰式命名规则)。接下来让我们为first_name属性定义⼀个修
改器,当我们为 型上的first_name赋值时该修改器会被⾃动调⽤:
?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class ser extends Model{
/**
* 设置⽤户的名字
*
* @param string $value
* @return string
*/
public function setFirstNameAttribute($value)
{
$this-attributes[first_name] = strtolower($value);
}
}
该修改器获取要被设置的属性值,允许你操纵该值并设置Eloquent 型内部属性值为
操作后的值。例如,如果你尝试设置Sally的first_name属性:
$user = App\ ser::find(1);
$user-first_name = Sally ;
在本例中,setFirstNameAttribute⽅法会被调⽤,传⼊参数为Sally,修改器
会对其调⽤strtolower函数并将处理后的值设置为内部属性的值。
3、⽇期修改器
默认情况下,Eloquent将会转化created_at和updated_at列的值为Carbon实例,
该类继承⾃PHP原⽣的Datetime类,并提供了各种有⽤的⽅法。
你可以⾃定义哪些字段被⾃动调整修改,甚⾄可以通过重写 型中的$dates属性完
全禁⽌调整:
?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class ser extends Model{
/**
* 应该被调整为⽇期的属性
*
* @var array
*/
protected $dates = [created_at, updated_at, disabled_at]
}
如果字段是⽇期格式时,你可以将其值设置为UNIX 时间戳,⽇期字符串 (Y-m-
d),⽇期-时间字符串,Datetime/Carbon实例,⽇期的值将会⾃动以正确格式存
储到数据库中:
$user = App\ ser::find(1);
$user-disabled_at = Carbo
您可能关注的文档
- DSHplus软件简介.doc
- DSP与触摸屏的通讯程序设计.pdf
- DSP_Chapter2_z变换及离散时间系统.pdf
- DSPII算法实验.pdf
- D_101_型树脂对芍药苷吸附分离性能的研究.pdf
- E-AGCH信道简介.docx
- d第四批上传view(EasyPro 语法示例讲解).pdf
- Duffing振子微弱信号检测方法的统计特性研究.pdf
- e5土地利用模式与城市交通模式关系研究.pdf
- e4的电动模型车无线测控系统的实现.pdf
- 2024染发行业趋势白皮书.pdf
- 企业行政前台电话接听礼仪培训课件.pdf
- 核药行业深度报告:高壁垒铸就双寡头,点亮核药星辰大海.pdf
- 茶饮行业深度报告:东方茶走进下沉,走向世界(202406).pdf
- [吉林]2023年吉林农业大学招聘18人(7号)笔试历年高频考点(难、易错点)附带答案详解.docx
- [台州]浙江台州市立医院招聘采购部工作人员笔试历年高频考点(难、易错点)附带答案详解.docx
- [吉安]2023年江西吉安职业技术学院机械与电子工程学院外聘教师招聘笔试历年高频考点(难、易错点)附带答案详解.docx
- [台州]浙江台州温岭市委机构编制委员会办公室招聘编外人员笔试历年高频考点(难、易错点)附带答案详解.docx
- [台州]浙江台州温岭市禁毒办招聘禁毒社工笔试历年高频考点(难、易错点)附带答案详解.docx
- [台州]浙江台州玉环市医疗保障局招聘编外工作人员笔试历年高频考点(难、易错点)附带答案详解.docx
文档评论(0)