php 数据库操作模型,thinkphp5.1数据库模型操作

模型操作

1.1、模型定义与模型设置php think make:model 模块名/模型名(首字母大写)

# 非必须protected $pk = 'uid'; #设置主键名称

protected $table = 'think_user'; #设置当前模型对应的完整数据表名称

ef0dad619834e2fda949ccec74d55490.png

764a81c716279b16b85263e1f650a991.png

1.2、添加数据

# 添加一条数据

# 方法1$user = new User;

$user->name = 'thinkphp';

$user->email = 'thinkphp@qq.com';

$user->save();

# 方法2$user = new User;

$user->save([

'name' => 'thinkphp',

'email' => 'thinkphp@qq.com'

]);

// 过滤post数组中的非数据表字段数据

$user->allowField(true)->save($_POST);

$user->allowField([要插入的字段,要插入的字段])->save($_POST);

# 方法3$user = User::create([

'name' => 'thinkphp',

'email' => 'thinkphp@qq.com'

]);

echo $user->name;

# 添加多条记录

$user = new User;

$list = [

['name'=>'thinkphp','email'=>'thinkphp@qq.com'],

['name'=>'onethink','email'=>'onethink@qq.com']

];

$user->saveAll($list);

50ff08ae3cb62e321a3d0bcbe13bfe80.png

1.3、更新数据

# 方法1$user = User::get(1);

$user->name = 'thinkphp';

$user->email = 'thinkphp@qq.com';

$user->save();

# 方法2$user = new User;

// save方法第二个参数为更新条件

$user->save([

'name' => 'thinkphp',

'email' => 'thinkphp@qq.com'

],['id' => 1]);

$user = new User;

// 过滤post数组中的非数据表字段数据

$user->allowField(true)->save($_POST,['id' => 1]);

# 方法3User::where('id', 1)->update(['name' => 'thinkphp']);

9e4b0f2a08369e7fe1125b709264bf46.png

1.4、删除数据

# 方法1$user = User::get(1);

$user->delete();

# 方法2User::destroy(1);

User::destroy([1,2,3]);

606b937c35d6efee71d6bf62e2688caa.png

1.5、软删除

在实际项目中,对数据频繁使用删除操作会导致性能问题,软删除的作用就是把数据加上删除标记,而不是真正的删除,同时也便于需要的时候进行数据的恢复。

b550a2f9b850b9f989a75b9545aae3f9.png

3ec291849a159c8863624fb752d6d9b7.png

c955c4e6476430c4d3e4e3dc793dbea2.png

684c9ea7174d6bac446d88c6563f0174.png

1.6、查询数据

# 查询单条记录,返回一维数组$user = User::where('name', 'thinkphp')->find();

# 查询多条记录$list = User::where('status', 1)->limit(3)->order('id', 'asc')->select();

# 获取某个字段或者某个列的值

// 获取某个用户的积分User::where('id',10)->value('score');

// 获取某个列的所有值User::where('status',1)->column('name');

// 条件分组 where () or ()$ret = Articles::where(function (Query $query){

#print_r(func_get_args());

$query->where('id','>',200);

})->whereOr(function (Query $query){

$query->where('click','>=',101);

})->select();

使用field来给字段起别名

ee804d0db2090ca477f5ab8e3f2a14a3.png

3a40ff613a85dcc78917cf57815becca.png

示例代码// 调用模型获取数据, 根据传递过来的pid返回数据

$cates = Cates::field('id, name, parent_id as parentId, is_parent as isParent, sort')

->where('parent_id', $request->pid)

->select();

# 动态查询

// 根据name字段查询用户$user = User::getByName('thinkphp');

5822b4fa2f085bff8d38e88fd45314aa.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值