请选择 进入手机版 | 继续访问电脑版
开启辅助访问
帐号登录 |立即注册

TP5模型数据自动完成设置:$insert/$update/$auto属性配置技巧

 
设置自动时间戳

1、模型中开启:protected $autoWrite' Timestamp=true;
2、在表中手工创建二个字段:create_time,update_time;
3、用户执行新增和更新操作时,会自动将新增与更新时间写入表中;
4、默认以时间戳格式写入,可以配置为:datatime格式。

第一步,在模型文件Staff.php中开启自动时间戳设置
<?php
namespace app\ index \model;
use think\Model;
class Staff extends Model
//是否需要自动写入时间戳如果设置为字符串则表示时间字段的类型
protected $autoWriteT imestamp=true;
// 创建时间字段
protected $createTime =' create_ time ' ;
//更新时间字段
protected $updateTime = ' update_ time';
}

第二步,数据库的staff表中手工建立二个字段:create_ time,update_ time;

设置数据自动完成输入
模型文件中设置
1、$insert= ['字段'=>'值...];          //新增时自动插入到表中的
2、$update = [字段'=>'...];         //更新时自动更新字段值
3、$auto= ['字段'=>'...];      //新增或更新时自 动填入或更新字段值
通常要与类型自动转换属性: $type= ['字段'=>'类型...]相配合

第一步,在模型文件Staff.php中设置默认输入字段信息
//保存自动完成列表
protected $auto = [] ;
//新增自动完成列表
protected $insert =[
‘sex’=>1,
'age '=>18,
'hiredate'=> 2017-01-01'
];
//更新自动完成列表
protected $update = [] ;
protected $type=[' hiredate '=> ' timestamp '];
//保存自动完成列表
protected $auto = [’age '=>30,];
//新增自动完成列表
protected $insert =[
‘sex'=>1,
' dept', //部门门]名称,根据员工性别sex字段的
' hiredate'=> 2017-01-01 '
];
//更新自动完成列表
protected $update =[
'dept' => '培训部'
];
protected $type =[
' hiredate '=> ' timestamp',
];


第二步,控制器Index.php中加入数据,代码如下:
<?php
namespace app\ index\controller;
use app\ index \model\Staff;
class Index extends \ think\Controller
{
public function index( )
{
$result = Staff: :create( [
name'=> '西]庆'
]);
if ( $result) {
return $result->name. '---添加成功~' ;
} else {
return $result -> getError();
}
}
}

扩展知识:数据库模板Staff.php中加入自动修改器,进行自动判断输入:
protected function setDeptAttr($dept, $data)
{
if ($data['sex']==1) {
return $this->dept = '开发部';
}else{
return $this->dept = ' 客服部;
}
}

回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

友情链接
  • 艾Q网

    提供设计文章,教程和分享聚合信息与导航工具,最新音乐,动漫,游戏资讯的网站。