tp5 中 model 的新增方法
//默认主键为自动识别,如果需要指定,可以设置属性: namespace app\index\model; use think\Model; class User extends Model
{
protected $pk = 'uid';
// 设置当前模型对应的完整数据表名称
protected $table = 'think_user'; }
使用助手函数model()快速实例化模型(推荐)
public function save(){
$user = model('User'); // 使用model 即可快速实例化模型,不必使用 $user = new User();
$list = [
['name'=>'thinkphp','email'=>'thinkphp@qq.com']
];
$user->saveAll($list);
}
save()方法添加单条数据
//使用data方法批量添加数据:
namespace app\index\controller;
use think\Controller;
use think\Request;
use app\index\model\User as UserModel;
public function save(){
$user = new UserModel;
$user->data([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
]);
$count = $user->save();
dump($count) // save方法新增数据返回的是写入的记录数
}
// 使用allowField过滤非数据表字段
public function save(Request $request){
$user = new UserModel();
// $_POST过来的数据中包含数据表中没有的字段
$user->data($request->param()); // 或者$_POST
// 只会保存数据表中有的字段
$user->allowField(true)->save();
}
// 希望某些指定字段写入
public function save(Request $request){
$user = new UserModel();
$user->data($request->param());
// 只写入name字段和email字段的值
$count = $user->allowField(['name','email'])->save();
dump($count);die;
}
// 获取自增id
public function save(Request $request){
$user = new UserModel();
$user->data($request->param());
$user->allowField(true)->save();
echo $user -> id; // 输出当前插入数据的主键
}
//如果同一个实例里面多次新增数据,必须使用isUpdate(false)
public function save(Request $request){
$user = new UserModel();
$user->data($request->param());
$user->allowField(['name'])->save(); // 插入第一条数据
$user->name='thinkphp';
$user->email='thinkphp@qq.com';
$user->allowField(['email'])->isUpdate(false)->save(); // 再次插入一条数据
}
saveAll()方法添加多条数据
// saveAll()同时添加多条数据
public function save(Request $request){
$user = new UserModel();
$list = [
['name'=>'thinkphp','email'=>'thinkphp@qq.com'],
['name'=>'chrdai','email'=>'chrdai@qq.com']
];
$user->saveAll($list);
}
// saveAll()方法中若数据中带有主键,则为更新操作,若不带主键则为插入操作
public function save(Request $request){
$user = new UserModel();
$list = [ // 此处的两条数据将执行更新操作
['id'=>,'name'=>'thinkphp_update','email'=>'thinkphp@qq.com'],
['id'=>,'name'=>'chrdai_update','email'=>'chrdai@qq.com']
];
$user->saveAll($list);
}
静态调用create方法创建并写入
// 使用create方法可以直接将数据插入到数据库
public function save(Request $request){
$user = UserModel::create([
'name'=>'thinkphp', // 此处的字段必须是数据表中存在的
'email'=>'thinkphp@qq.com'
]);
echo $user->id; // 获取当前插入数据的id
}
tp5 中 model 的新增方法的更多相关文章
- tp5 中 model 的查询方法
实例化模型后调用查询方法,可以写任何想要的查询(推荐) public function select(){ $user = model('User'); $data = $user -> ) - ...
- tp5 中 model 的删除方法
根据主键删除(推荐) use app\index\model\User as UserModel; public function delete(){ UserModel::destroy([1,2, ...
- tp5 中 model 的更新方法
// 过滤非数据表字段更新 public function update(Request $request){ $user = model('User'); $result = $user -> ...
- tp5中的一些小方法
// 当使用一个新页面替换当前页面的body后,body刷新了,所选择的select值就不能保存住,解决方法如下: 作业题目<select> <option>--请选择--&l ...
- tp5 中 model 的修改器
修改器可以在数据赋值的时候自动进行转换处理 class User extends Model { public function setNameAttr($value){ return strtolo ...
- tp5 中 model 的获取器
在获取数据的字段值后自动进行处理 // 模型中写入如下代码,则查询结果会自动将status的结果进行转换 class User extends Model { public function getS ...
- tp5 中 model 的聚合查询
方法 说明 Count 统计数量,参数是要统计的字段名(可选) Max 获取最大值,参数是要统计的字段名(必须) Min 获取最小值,参数是要统计的字段名(必须) Avg 获取平均值,参数是要统计的字 ...
- String.join() --Java8中String类新增方法
序言 在看别人的代码时发现一个方法String.join(),因为之前没有见过所以比较好奇. 跟踪源码发现源码很给力,居然有用法示例,以下是源码: /** * Returns a new String ...
- ES6中字符串的新增方法梳理
1.String.fromCodePoint(); String,fromCodePoint()方法可以认为是对String.fromCharCode()方法的扩展,这两个方法的共同点在于都是用于Un ...
随机推荐
- 20145215&20145307信息安全系统设计基础实验报告
20145215&20145307信息安全系统设计基础实验报告 PART1 一.实验原理 交叉编译,简单地说,就是在一个平台上生成另一个平台上的可执行代码.同一个体系结构可以运行不同的操作系统 ...
- Mongodb学习笔记五(C#操作mongodb)
mongodb c# driver(驱动)介绍 目前基于C#的mongodb驱动有两种,分别是官方驱动(下载地址)和samus驱动(下载地址). 本次我们只演示官方驱动的使用方法. 官方驱动文档查看 ...
- IT职场人的“存在主义”
人生在世,最重要的一条就是:找准你的位置.也就是,你的定位问题. 就在前两天,参加一次社交活动,一知名培训师回顾过往,感慨地说:一个好的培训师,一定要定位好自己的客户群,根据他们的需求做好自己的定 ...
- linux运维工作职责
(1)运维人员要谨记的6个字:运维人员做事需遵循:简单.易用.高效(2)运维人员服务的3大宗旨:1.企业数据安全保障.2.7*24小时业务持续提供服务.3.不断提升用户感受.体验.(3)初中级运维的 ...
- PowerDesigner逆向工程导入MYSQL数据库总结
由于日常数据建模经常使用PowerDesigner,使用逆向工程能更加快速的生成模型提高效率,所以总结使用如下: 首先现在PowerDesigner,这里提供PD16.5版本链接: http://pa ...
- 作业一:android开发平台的演变以及Android Studio设置
目录: ①. 从Eclipse到Android Studio ②. Android Studio的下载和安装 ③. 用户习惯设置以及快捷键 ④. SDK路径重新设置 ↓点此跳转到文 ...
- table寻找兄弟列的值
function showCover(videoidtemp,curRow){ // curRow为当前元素.寻找当前元素的父元素,寻找父元素中class为tdd的元素..html() 是单元格td中 ...
- C/C++中的声明与定义
含义 声明(Declaration), 用于告诉编译器被声明的函数/变量的存在, 及它们的类型/调用格式信息, 以检查是否被正确调用. 声明不分配内存空间. 定义(Definition), 用于告诉编 ...
- JUnit备忘录
测试方法不应该有参数 使用junit做测试的时候发现总是报错:Method XXX should have no parameters; 后来发现是因为测试方法里面函数参数
- PE启动菜单修改工具 MsgDiyer(GfxMenu Message制作工具) V2.0.3官方版
MsgDiyer基本功能 1.新建message文件.修改现有message文件:2.自定义背景图片:3.制作message字体,包括行高.大小等(目前不兼容WIN7):4.自定义字库:5.导入外置 ...