Thinkphp 便捷插入 POST 和更新

限制传入数据类型和数据信息

不要忘记引入:use think\facade\Request;

use think\facade\Request;

$data = Request::only(['name','email','id']);
$data['id'] = $this->request->get('id/d');
$data['id'] = $this->request->get('sexy/d',1);//设置默认为1
 

强制转换符号 d(数字) b(布尔) s(字符串) a(数组) f(浮点)

标识符描述示例
/s字符串类型转换$this->request->get('param/s')
/a数组类型转换$this->request->get('param/a')
/b布尔类型转换$this->request->get('param/b')
/f浮点类型转换$this->request->get('param/f')
/int整型转换(等同于 /d$this->request->get('param/int')
/bool 或 /boolean布尔类型转换$this->request->get('param/bool') 或 $this->request->get('param/boolean')
参数类型转换标识符

save 插入信息 输入 $_POST

$user = new User;
// post数组中只有name和email字段会写入
$user->allowField(['name','email'])->save($_POST);

//或者

$user = new User;
// 过滤post数组中的非数据表字段数据
$data = Request::only(['name','email']);
$user->save($data);

// 获取自增ID
echo $user->user_id;

多个条目插入 saveAll()

$user = new User;
$list = [
    ['name'=>'thinkphp','email'=>'thinkphp@qq.com'],
    ['name'=>'onethink','email'=>'onethink@qq.com']
];
$user->saveAll($list);

CREATE静态

$user = User::create([
    'name'  =>  'thinkphp',
    'email' =>  'thinkphp@qq.com'
]);
echo $user->name;
echo $user->email;
echo $user->id; // 获取自增ID

更新 SAVE 需要主键,使用数组限制allowField来更新

$user = new User;
$list = [
    ['name'=>'thinkphp','email'=>'thinkphp@qq.com'],
    ['name'=>'onethink','email'=>'onethink@qq.com']
];
$user->saveAll($list);


$user = new User;
$list = [
    ['id'=>1, 'name'=>'thinkphp', 'email'=>'thinkphp@qq.com'],
    ['id'=>2, 'name'=>'onethink', 'email'=>'onethink@qq.com']
];
$user->saveAll($list);

#使用allowField来更新
$user->allowField(['name', 'email'])->save($_POST);

#传入前过滤,在控制器里面设置
$user = User::find(1);
// post数组中只有name和email字段会写入
$data = Request::only(['name','email']);
# $data为传入只保留name和email
$user->save($data);

UPDATE静态更新 不会更新update_time 需要主键

User::update(['name' => 'thinkphp'], ['id' => 1]);

发表回复