模型读取器与修改器


staff.php模型中(该模型对应名为Staff的信息表):

<?php
namespace app\index\model;
use think\Model;
class Staff extends Model
{
  
}
?>

index.php控制器中:

<?php
namespace app\index\controller;
use app\index\model\Staff;
class Index
{
  public function index()
  {
    $staff = Staff::get(1033);
    return $staff->name.'的入职时间是:'.date('Y-m-d',$staff->hiredate);
  }
}
?>

可以在模型中设计一个读取器,就不用每次都这么用了。

staff.php模型中:

<?php
namespace app\index\model;
use think\Model;
class Staff extends Model
{
  protected function getHireDateAttr($hiredate)
  {
    return date('Y-m-d',$hiredate);
  }
}
?>

index.php控制器中:

<?php
namespace app\index\controller;
use app\index\model\Staff;
class Index
{
  public function index()
  {
    $staff = Staff::get(1033);
    return $staff->name.'的入职时间是:'.$staff->hiredate;
  }
}
?>

也可以这样:
index.php控制器中:

<?php
namespace app\index\controller;
use app\index\model\Staff;
class Index
{
  public function index()
  {
    $staff = Staff::get(1033);
    return $staff->hiredate;
  }
}
?>

staff.php模型中:

<?php
namespace app\index\model;
use think\Model;
class Staff extends Model
{
  protected function getHireDateAttr($hiredate,%data) //get...Attr是固定格式,只有这样的才是读取器,会自动读取...的内容
  {
    return $data['name'].'的入职时间是:'.date('Y-m-d',$hiredate);
  }
}
?>



在model.php中添加:

protected function setHireDateAttr($hiredate)
{
  return strtotime($hiredate);
}

在index.php中添加:

$staff = new Staff;
$staff->name = '左冷禅';
$staff->salary = 5000;
$staff->hiredate = '2014-10-23';
if($staff->save()){
  return '新员工'.staff->name.',ID:'.$staff->id.',添加成功';
} else {
  return $staff->getError();
}

这样会往数据库中添加一个转化为时间戳的hiredate。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,970评论 19 139
  • MySQL技术内幕:InnoDB存储引擎(第2版) 姜承尧 第1章 MySQL体系结构和存储引擎 >> 在上述例子...
    沉默剑士阅读 12,157评论 0 16
  • 文章分类 后台文章分类列表页模板导的详细步骤建立数据表blog_category,并添加相应的文章字段使用php ...
    JoyceZhao阅读 5,729评论 0 14
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,692评论 1 92
  • 要离开西安了 ,心里很是不舍。这里有亲人,这里有回忆,这里没有压力,这里有片刻的休憩 ,就这就足以感动一个漂...
    瑀轩阅读 1,535评论 0 0

友情链接更多精彩内容