laravel学习教程之存取器
《PHP实例:laravel学习教程之存取器》要点: 前言PHP教程 Laravel是一个简单优雅的PHP Web开发框架,可以将开发者从意大利面条式的代码中解放出来,通过简单、高雅、表达式语法开发出很棒的Web应用,那下面跟着小编一起来学习laravel中的存取器吧.PHP教程 Eloquent: 存取器简介PHP教程 访问器和存储器允许你在获取或者设置 Eloquent 模型属性值时对其进行格式化操作.比如,你可能希望当一个值存储进数据库之前先对其进行 Laravel encrypter 进行加密操作,并且可以在你通过模型访问的时候自动的进行该属性的解密.PHP教程 除了可自定义的的访问器和存储器,Eloquent 也可以自动的将日期字段转换为 Carbon 实例,或者甚至是将字符串字段转换为 JSON.PHP教程 访问器 & 存取器 定义一个访问器PHP教程 为了定义一个访问器,你需要在你的模型上创建一个 <?php namespace App; use IlluminateDatabaseEloquentModel; class User extends Model { /** * Get the user's first name. * * @param string $value * @return string */ public function getFirstNameAttribute($value) { return ucfirst($value); } } 就如你所看到的,属性原始的值会被传递到访问器中,这允许你对原始值进行操作及返回格式化后的值.你只需要简单的访问 $user = AppUser::find(1); $firstName = $user->first_name; 定义一个存储器PHP教程 为了定义一个存储器,你需要在你的模型上定义一个 <?php namespace App; use IlluminateDatabaseEloquentModel; class User extends Model { /** * Set the user's first name. * * @param string $value * @return string */ public function setFirstNameAttribute($value) { $this->attributes['first_name'] = strtolower($value); } } 存储器会接收即将设置到属性中的值,这允许你对这个值进行操作,并将其设置到模型内部的 $user = AppUser::find(1); $user->first_name = 'Sally';
日期存取器 默认的, 你可以自定义哪些字段可以进行自动的转换,甚至是完全禁用这种转换,你需要在你的模型中复写 <?php namespace App; use IlluminateDatabaseEloquentModel; class User extends Model { /** * The attributes that should be mutated to dates * * @var array */ protected $dates = ['created_at','updated_at','deleted_at']; } 当一列被认为是日期时,你可以将其设置为 UNIX 时间戳,日期字符串( $user = AppUser::find(1); $user->deleted_at = Carbon::now(); $user->save(); 就如上面所述,当获取的属性是 $user = AppUser::find(1); return $user->deleted_at->getTimestamp();
<?php namespace App; use IlluminateDatabaseEloquentModel; class Flight extends Model { /** * The storage format of the model's date columns. * * @var string */ protected $dateFormat = 'U'; } 属性转换 你可以在你的模型中定义 比如,让我们转换 <?php namespace App; use IlluminateDatabaseEloquentModel; class User extends Model { /** * The attributes that should be casted to native types. * * @var array */ protected $casts = [ 'is_admin' => 'boolean',]; } 现在,每当你访问 $user = AppUser::find(1); if ($user->is_admin) { // } 数组转换PHP教程
<?php namespace App; use IlluminateDatabaseEloquentModel; class User extends Model { /** * The attributes that should be casted to native types. * * @var array */ protected $casts = [ 'options' => 'array' ]; } 当你转义定义完成之后,你可以访问 $user = AppUser::find(1); $options = $user->options; $options['key'] = 'value'; $user->options = $options; $user->save(); 以上就是小编为大家整理的laravel学习教程之存取器的全部内容,有需要的小伙伴们可以参考学习,小编陆续还会更新laravel相关的知识,请大家继续关注编程之家.PHP教程 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |