tp6框架中数据库和模型中数据增删查改的简单对比

tp6框架中数据库和模型中数据增删查改的简单对比

1.应用场景

数据库:适合简单、较小的项目
模型:可以把模型看成是数据库的增强版,适合比较复杂的应用场景

2.连接

数据库:

在根目录的 config 下的 database.php 可以设置数据库连接信息,主要修改一下几条:

'database' => Env::get('database.database', '数据库名称')
'username' => Env::get('database.username', '用户名'),
'password' => Env::get('database.password', '密码'),

但在本地测试, 会优先采用.env 的配置信息, 我们和 database 配置对应上即可;
使用:
在控制器目录下,创建自己的php文件,数据库的基本操作就可以在该文件下完成。

$user=Db::table('tp_user')->select();//使用Bb::table('表名')进行调用
模型:

1.模型的建立和使用

  • 首先保证数据库的连接
  • 模型会自动对应数据表,模型的命名规则是除去表前缀的数据表名称。
    1.创建一个跟控制器平级的的目录model
    2.在model中创建模型文件
    如:你有一个Users数据表,则在model目录下创建一个Userphp文件。定义一个和数据库表向匹配的模型;
class User extends Model{}

创建好模型后,在控制器进行调用。

use app\model\User;
class DataModel
{
	public function index()
	{
	return json(User::select());//调用直接使用User::
	}
}

3.数据的增删改查

a)数据新增

  • 数据库:将新增数据写入变量中,使用insert()方法进行新增。
$data = [
'username' => '辉夜',
'password' => '123',
'gender' => '女',
'email' => 'huiye@163.com',
];
Db::name('user')->insert($data);
  • 使用 insertAll()方法, 可以批量新增数据,$data变量中保持数组结构一致;

  • 也可直接使用save()方法新增。

    模型的数据新增

  • 模型:使用实例化的方式添加一条数据,使用save()方法写入数据库。

use app\model\User as UserModel;//as重命名
$user = new UserModel();//首先实例化:
$user->username = '李白';
$user->password = '123';
$user->gender = '男';
$user->save();
  • 更推荐使用create()静态方法创建新增的数据
$user = UserModel::create([
'username' => '李白',
'password' => '123',
'gender' => '男',
'email' => 'libai@163.com',
], ['username', 'password', 'details'], false);
//参数 1 是新增数据数组, 必选
//参数 2 是允许写入的字段, 可选
//参数 3 为是否 replace 写入, 默认 false 为 Insert 写入

b)数据删除

数据库
极简删除可以根据主键直接删除, 删除成功返回影响行数, 否则 0;

Db::name('user')->delete(51);

模型:使用 find()方法, 通过主键(id)查询到想要删除的数据;然后再通过 delete()方法, 将数据删除, 返回布尔值

$user = UserModel::find(93);
$user->delete();
  • 也可以使用静态方法调用 destroy()方法, 通过主键(id)删除数据;
UserModel::destroy(92)

c)数据查询
数据库:
查询一条数据, 使用 find()方法, 需指定 where 条件;

return Db::table('tp_user')->where('id', 27)->find();

模型

使用 find()方法, 通过主键(id)查询到想要的数据;

$user = UserModel::find(129);
return json($user);

d)数据修改
数据库:
使用 update()方法来修改数据, 修改成功返回影响行数, 没有修改返回 0;

$data = [
'username' => '李白'
];
return Db::name('user')->where('id', 38)->update($data);

模型:
使用 find()方法获取数据, 然后通过 save()方法保存修改, 返回布尔值;

$user = UserModel::find(118);
$user->username = '李黑';
$user->email = 'lihei@163.com';
$user->save();

总结:

  • 数据库在controller目录下创建自己的文件,并进行增删改查即可。
  • 模型需要在controller和model两个目录下创建一个模型文件和控制器文件结合使用,但是使用过程中 逻辑更清晰。
  • 在数据库中使用Db::name('数据表名'),而模型中因为在model文件下提前定义了数据表,所以在控制器中声名后可以直接使用。
  • 模型中的查询数据前期和数据库基本一摸一样,但是在后期模型的方法会更加丰富。

为了对比数据库和模型,本文总结了数据库和模型中最基本的增删改查,其中更详细的方法和使用,需要进一步学习。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值