- 开发个人小程序注意的事项
- 微信公众号运营的九大步骤
- PHP获取项目的绝对路径$_SERVER[ 'DOCUMENT_ROOT ']和 __FILE__的区别
- 微信小程序getApp()和App()方法详解
- 如何在aspx页面中使用js文件
- 老生常谈之四大高权重的外链资源
- AutoMapper用法
- 浅谈图片ALT文字与SEO的关系与应用
- Sql server 日期截取
- 小程序提示错误 Cannot read property 'concat' of undefined
邮箱:
手机:15383239821
thinkphp6模式model类操作数据库
直接通过navicate创建数据库yg_test,并在项目.env和config/database.php做好数据链接配置,注意yg_前缀的配置。
然后通过navicate新建yg_admin数据表,如下:

1、model模型
大概可以这样看模型,一个模型其实就是一个数据表,通过操作model模型来达到操作数据表;model模型以首字母大写的驼峰命名方式,如:AdminModel模型对应的数据表是admin_model、Admin模型对应的是admin数据表
如果数据表有前缀的话可以在.evn文件和config/database.php中配置前缀,这样模型命名时就可以把前缀去掉,如:数据表yg_admin对应的模式就是Admin。
2、新建模型
在app/admin/model/下新建模型Admin.php,并输入以下代码:
<?php
namespace app\admin\model;
use think\Model;
class Admin extends Model{
// protected $table = 'admin';//当模型名与表名设置不一样时也可以通过$table来设置指定数据表
// protected $pk = 'id';//当主键不是id字段时可以通过$pk来设置主键
protected $schema = [//通过$schema来设置数据表字段信息,据说不设置也会自动获取,但是会多一次查询,浪费资源!
'id' => 'int',
'typename' => 'text',
'mobile' => 'int',
'email' => 'varchar',
'password' => 'char',
'realname' =>'varchar',
'addtime' =>'datetime',
' updatetime' =>'datetime',
'lastip' =>'varchar',
];
}
3、新建控制器
在app/admin/controller下新建控制器datatest.php,并输入以下代码:
<?php
namespace app\admin\controller;
use app\admin\model\Admin;//引用Admin模型
class Datatest
{
public function index()
{
return '这里是数据测试链接';
}
public function add(){
//通过原生方法向数据表添加数据
$admin = new Admin;//实例化模型
$admin -> save([//利用save()方法向数据表添加数据,此方法只能向已有字段添加数据,一般返回
'typename' => '超级管理员',
'mobile' => '13878298210',
'email' => '483427581@qq',
'password' => '123456',
'realname' =>'胡一可',
'lastip' =>'192.168.1.1'
]);
return $admin;
}
}
4、因为之前配置了强制路由,所以还要在route配置中配置路由
<?php
namespace app\admin\route;//命名空间路径
use think\facade\Route;//引用门面路由类
Route::get('/','index/index'); //内部路由定义路径时不需要加入应用路径
Route::get('hello','index/hello');
Route::get('datatest','datatest/index');
Route::get('add','datatest/add');
5、执行add方法时报错,是因为在yg_admin数据表中设计mobile字段时设置int类型,但是网上查了一下,说密码应该是varchar类型,所以改过来就可以了。



因为我执行了两次,所以就增加了两条数据。
6、静态方法create()方法添加数据
<?php
namespace app\admin\controller;
use app\admin\model\Admin;//引用Admin模型
class Datatest
{
public function index()
{
return '这里是数据测试链接';
}
public function add(){
//通过静态方法添加数据
$admin = Admin::create([
'typename' => '超级管理员',
'mobile' => '13367521200',
'email' => '483427581@qq',
'password' => '123456',
'realname' =>'胡一兴',
'lastip' =>'192.168.1.1'
]);
return $admin;
}
}


发现添加数据成功后数据表的里面addtime和updatetime并不会自动按当前时间增加,所以又百度了一下,以把addtime时间默认值改成:CURRENT_TIMESTAMP,updatetime字段的默认值改成: CURRENT_TIMESTAMP on UPDATE CURRENT_TIMESTAMP


- 上一篇:thinkphp6模型操作
- 下一篇:Navicat数据存放位置和备份数据库路径设置
-
2024-04-19jQuery给动态添加的元素绑定事件的方法
-
2023-03-28Xshell软件功能
-
2011-02-19DataTable.Select 方法 (String, String)
-
2010-07-2049个影响网站排名的因素(完整版)
-
2020-07-31微信公众号运营的九大步骤
-
2010-07-20网页信噪比与相关度计算
