thinkphp5.1使用模型新增(插入)数据

ThinkPHP5.* / 702人浏览 / 0人评论

thinkphp5.1模型插入数据,插入数据之前并且使用validate处理验证,插入的数据在数据表中实现时间字段自动写入,在index模块中新建model/User模型,validate中新建User验证规则和提示信息,返回json格式给前端。

thinkphp5.1模型插入数据,插入数据之前并且使用validate处理验证,插入的数据在数据表中实现时间字段自动写入,在index模块中新建model/User模型,validate/user中新建User验证规则和提示信息,返回json格式给前端。
database.php中做好全局自动时间戳配置:

    // 自动写入时间戳字段
    'auto_timestamp'  => true,

在控制器中实现的代码案例如下:

<?php
namespace app\index\controller;

use think\Controller;
use app\index\model\User;

class Users extends Controller
{
    public function add()
    {
        $res = $this->validate($this->request->post(),'app\index\validate\user\User');
        
        if ($res !== true){
            $this->result([], 1, $res, 'json');
        }
        
        $result = (new User)->insert($this->request->post());
        
        if ($result) {
            $this->result([], 0, '成功', 'json');
        } else {
            $this->result([], 1, '失败', 'json');
        }
    }
    
}    

index模块中model/User.php案例代码:

<?php
namespace app\index\model;

use think\Model;
class User extends Model
{
    // 定义时间戳字段名
    
    protected $createTime = 'createtime';
    protected $updateTime = 'updatetime';
    
    // 插入数据
    public function insert($data)
    {
        return $this->save($data);
    }
    
}

validate/user中新建User验证规则和提示信息代码:

<?php
namespace app\index\validate\user;

use think\Validate;

class User extends Validate
{
    protected $rule =   [
        'username'  => 'require|unique:user|max:32',
        'mobile'    => 'require|mobile',
        'password'  => 'require|alphaNum|max:12',
    ];
    
    protected $message  =   [
        'username.require' => '账号不能为空',
        'username.unique'  => '账号被占用,换一个呗',
        'mobile.require'   => '请输入手机号',
        'mobile.mobile'    => '手机号码错误',
        'password.require' => '请输入密码',
        'password.alphaNum'=> '密码只能为字母和数字',
    ];
}

数据新增成功提示信息:

{
    "code": 0,
    "msg": "成功",
    "time": 1609072191,
    "data": []
}

如果数据表中的username已存在信息提示:

{
    "code": 1,
    "msg": "账号被占用,换一个呗",
    "time": 1609073336,
    "data": []
}

转载注明:

0 条评论

vouyiuhq
3年前
https://www.fxzbcn.com/

发表评论 取消回复

记住我的信息,方便下次评论
有人回复时邮件通知我