笑奸蕾味窍坝拷媚泰锤练纳勤
数据表信息:
<?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index() { //输出陈近南的个人信息 $staff=Staff::get(19); return $staff->name."的入职时间是:".$staff->hiredate; } }
执行:
将unix时间戳转换为时间格式
<?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index() { //输出陈近南的个人信息 $staff=Staff::get(19); return $staff->name."的入职时间是:".date('Y-m-d',$staff->hiredate); } }
执行:
date()函数支持更多花样:
<?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index() { //输出陈近南的个人信息 $staff=Staff::get(19); return $staff->name."的入职时间是:".date('Y年m月d日 H时i分s秒',$staff->hiredate); } }
执行:
这种操作每一次都要写会很麻烦,可以在模型中设置读取器方法一次搞定
获取器可以这样写
<?php namespace app\index\model; use think\Model;//引入Model类 class Staff extends Model { protected function getHiredateAttr($hiredate) { return date('Y年m月d日 H时i分s秒',$hiredate); } }
或者:
<?php namespace app\index\model; use think\Model;//引入Model类 class Staff extends Model { protected function getHireDateAttr($hiredate) { return date('Y年m月d日 H时i分s秒',$hiredate); } }
D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:
<?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index() { //输出陈近南的个人信息 $staff=Staff::get(19); return $staff->name."的入职时间是:".$staff->hiredate; } }
执行:
获取器还支持传入第二个参数$data
D:\phpStudy\PHPTutorial\WWW\tp5\application\index\model\Staff.php:
<?php namespace app\index\model; use think\Model;//引入Model类 class Staff extends Model { protected function getHiredateAttr($hiredate,$data) { //data保存着当前模型所有的原始数据,data['name']即对应着数据表中的name字段 return $data['name']."的入职时间是:".date('Y年m月d日 H时i分s秒',$hiredate); } }
执行:
<?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index() { //输出陈近南的个人信息 $staff=Staff::get(19); return $staff->hiredate; } }
执行:
解释:Index.php中,代码执行到:
return $staff->hiredate;
即获取hiredate属性时,触发模型Staff.php中的获取器getHiredateAttr($hiredate,$data)
在函数体中输出相关信息
修改器:即对数据库进行写操作时触发
添加左冷禅
<?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index() { $staff=new Staff(); $staff->name="左冷禅"; $staff->salary=5000; $staff->hiredate=strtotime('2014-10-23'); if($staff->save()) { return "新员工".$staff->name."ID:".$staff->id."添加成功"; } else { $staff->getError(); } } }
执行:
从数据表中删除左冷禅
在模型中设置设置器,使得时间字符串自动转化为unix时间戳
<?php namespace app\index\model; use think\Model;//引入Model类 class Staff extends Model { //获取器,获取hiredate属性时自动触发 protected function getHiredateAttr($hiredate,$data) { //data保存着当前模型所有的原始数据,data['name']即对应着数据表中的name字段 return $data['name']."的入职时间是:".date('Y年m月d日 H时i分s秒',$hiredate); } //设置器,设置hiredate属性时自动触发 protected function setHiredateAttr($hiredate) { return strtotime($hiredate); } }
D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:
<?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index() { $staff=new Staff(); $staff->name="左冷禅"; $staff->salary=5000; $staff->hiredate='2014-10-23'; if($staff->save()) { return "新员工".$staff->name."ID:".$staff->id."添加成功"; } else { $staff->getError(); } } }
执行:
世芹氰苏尸海莲立挪巢畅蹋酞