位置: 编程技术 - 正文

laravel学习教程之存取器(laravel learnku)

编辑:rootadmin

推荐整理分享laravel学习教程之存取器(laravel learnku),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:laravel入门教程pdf,laravel实战教程,laravel怎么学,laravel 入门教程,laravel 入门教程,laravel快速入门,laravel入门与实战,laravel入门与实战,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

Laravel是一个简单优雅的PHP Web开发框架,可以将开发者从意大利面条式的代码中解放出来,通过简单、高雅、表达式语法开发出很棒的Web应用,那下面跟着小编一起来学习laravel中的存取器吧。

Eloquent: 存取器简介

访问器和存储器允许你在获取或者设置 Eloquent 模型属性值时对其进行格式化操作。比如,你可能希望当一个值存储进数据库之前先对其进行 Laravel encrypter 进行加密操作,并且可以在你通过模型访问的时候自动的进行该属性的解密。

除了可自定义的的访问器和存储器,Eloquent 也可以自动的将日期字段转换为 Carbon 实例,或者甚至是将字符串字段转换为 JSON。

访问器 & 存取器

定义一个访问器

为了定义一个访问器,你需要在你的模型上创建一个 getFooAttribute 方法,其中的 Foo 是你需要进行访问的列名的驼峰方式的命名。在这个例子中,我们将定义一个 first_name 属性的访问器。这个访问器会在 Eloquent 尝试获取 first_name 属性值时触发:

就如你所看到的,属性原始的值会被传递到访问器中,这允许你对原始值进行操作及返回格式化后的值。你只需要简单的访问 first_name 属性就可以从存取器中访问该值:

定义一个存储器

为了定义一个存储器,你需要在你的模型上定义一个 setFooAttribute 方法,其中的 Foo 是你期望访问的列的驼峰样式的名称。那么,这一次,让我们为 first_name 属性定义一个存储器。这个存储器会在模型尝试设置 first_name 属性的值时进行调用:

laravel学习教程之存取器(laravel learnku)

存储器会接收即将设置到属性中的值,这允许你对这个值进行操作,并将其设置到模型内部的 $attributes 属性中。所以,举个示例,如果我们尝试将 first_name 属性设置为 Sally:

在这个例子中,setFirstNameAttribute 方法会被调用并伴随 Sally 值。存储器会应用 strtolower 方法将名字小写化然后将值设置到内部的 $attributes 数组中。

日期存取器

默认的,Eloquent 会转换 created_at 和 updated_at 列为 Carbon 实例,这个实例可以提供多种有用的方法,并且它继承自原生 PHP 的 DataTime 类。

你可以自定义哪些字段可以进行自动的转换,甚至是完全禁用这种转换,你需要在你的模型中复写 $dates 属性:

当一列被认为是日期时,你可以将其设置为 UNIX 时间戳,日期字符串(Y-m-d),时间字符串,和 DateTime / Carbon 实例,并且日期的值会自动的正确的存储到数据库中:

就如上面所述,当获取的属性是 $dates 属性所列出的值之一时,它会自动的被转换为 Carbon 实例,这允许你在属性上使用 Carbon 的一些方法:

默认的,时间戳被格式化为 Y-m-d H:i:s 的格式。如果你希望自定义时间戳的格式,你需要在你的模型中设置 $dateFormat 属性。该属性将确定日期属性将如何存储到数据库中以及当模型进行序列化或者 JSON 化时如何展示:

属性转换

你可以在你的模型中定义 $casts 属性来提供一种方便的方式将属性转换为通用的数据类型。$casts 属性应该是一个数组,并且其每一项的键应该是需要进行转换的属性名,而其键所对应的值应该是你需要属性转换到的类型。支持的转换类型有:integer,real,float,double,string,boolean,object,array,coolection,date,datetime,和 timestamp。

比如,让我们转换 is_admin 属性,它在数据库中存储的值为一个整型(0 或者 1),我们将其转换为布尔值:

现在,每当你访问 is_admin 属性时,其值都会被转换为布尔值,即使其在数据库中存储的整型值:

数组转换

array 转换的类型对于存储序列化 JSON 值的列尤其有用。比如,如果数据库有一个 TEXT 类型的字段,并且其存储的是序列化的 JSON,如果你添加该属性的 array 转换,那么当你在 Eloquent 模型上访问这个属性时,它将会自动的进行反序列化为 PHP 的数组:

当你转义定义完成之后,你可以访问 options 属性,并且它会自动的被从 JSON 反序列化为 PHP 数组。当你设置值到 options 属性时,所给定的数组会自动的序列化为 JSON 格式,然后进行存储:

标签: laravel learnku

本文链接地址:https://www.jiuchutong.com/biancheng/275001.html 转载请保留说明!

上一篇:简单解析PHP程序的运行流程(php解析原理)

下一篇:laravel学习教程之关联模型(laravel快速入门)

  • 劳务报酬申报个税流程
  • 个体工商户月销售额超10万怎么报税
  • 小规模纳税人税费会计分录
  • 如何确定交易性金融资产
  • 保理公司发放贷款
  • 免税小规模企业开专票可以吗
  • 本季度盈利可以当季弥补以前亏损吗
  • 法人贷款用于公司经营的分录怎么做
  • 单位月工资总额
  • 公司注销库存商品转营业外收入
  • 小企业会计准则和企业会计准则的区别
  • 合作保证金可以退吗
  • 低值易耗品摊销什么意思
  • 普通发票需要做分录吗?
  • 营改增后新开公司如何报地税?
  • 土地使用税的计算公式举例子
  • 天然气的销售需要什么资质
  • 职工教育经费进项
  • 2017小规模纳税人标准
  • 退休人员再任职个人所得税
  • 免征残保金还需交税吗
  • 资产处置损益在企业所得税汇算时如何填列
  • 债权投资属于其他非流动金融资产嘛
  • 二手车没购车发票有影响吗
  • 跨期费用审计调整分录
  • 补缴以前税收滞纳金多少
  • 应收账款核销会计处理
  • 固定资产报废怎么开票
  • 作业成本法的成本对象包括哪几个层次
  • windows10如何开启夜间模式
  • 汇算清缴时研发费用加计扣除怎么做账
  • 处理车辆违章送哪个部门
  • 企业注销时还有应付职工薪酬怎么办
  • 移动有聊天室平台吗
  • php数组转js数组
  • 税法中一年按多少天算
  • 可变现净值相关税费包括消费税吗
  • 集成代码
  • redis主从复制如何保证不丢失数据
  • Pytorch深度学习实战3-5:详解计算图与自动微分机(附实例)
  • 除财政部门外,审计税务人民银行
  • 豪华车消费税的计算公式
  • 累计折旧是当月提还是下月提
  • 年末关账注意事项
  • 出差期间发生的招待费计入什么科目
  • 办公室装修费多少钱可以一次性入账
  • 为什么应付账款不被视为债务融资
  • 动迁补偿金
  • 合作研究开发项目的合同
  • 母公司为子公司承担税费
  • 疫情防控期间临时性工作补助申请
  • 安装生产流水线工程领用原材料
  • 银行询证函费用发票
  • 什么情况下需要割包皮
  • 异地预缴增值税多交了怎么办,可以退吗
  • 差旅费车票是否可以报销
  • 票据的提示承兑期限是什么意思
  • 缴纳的车辆购置税需要计提吗
  • mysql存储引擎实现原理
  • ie8 开发者工具
  • windows查找命令
  • 64位ubuntu8.04 安装QQ
  • win10更新补丁导致打印机
  • 飞行体验设备
  • win10本地连接怎么改名称
  • windows8音频服务尚未启用 怎么解决
  • 开快打开
  • base如何使用
  • javascript中判断数据类型的几种方法
  • ugui scrollview
  • android 自定义linearlayout 宽度计算不对
  • 绿牌电动车需要什么条件
  • 关联企业业务往来税收调整
  • 广东智慧团建登录不上去怎么回事
  • 教师职称申报申请
  • 税务总局地位
  • 别墅与普通住宅的优缺点
  • 吉林省国税局网站官网
  • 差额开票扣除额多补税
  • 江苏税务局网上预缴税流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设