Eloquent ORM ―― 调整器.pdf

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

您可能关注的文档

文档评论(0)

ipbohn97 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档