博主信息
博文 46
粉丝 3
评论 2
访问量 47040
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
ThinkPHP 模型操作之查询、软删除 2018年5月24日
墨雨的博客
原创
2243人浏览过

一、模型基本操作

1.模型是一个继承自框架的think\Model.php的类;

2.模型大多数情况下与一张数据表对应;

3.模型支持对象关系映射;

4.模型对应数据表,而模型实例(对象)对应表中的一条记录

用模型的方法实现对数据表的增删改查:get()单记录查询,all()多记录查询,create()新增,update()更新,destroy()删除

二、软删除

1,在数据表中添加delete_time int(10)字段,保存删除时间(删除标记);

2,在模型中导入软操作类,use think\model\concern\SoftDelete;

3,在模型中设置软删除字段名及默认值,$deleteTime = 'delete_time',$defaultSoftDelete = 0;

软删除的数据在普通查询中不可见

withTrashed()方法可以使软删除的数据包含在查询结果中

onlyTrsashed()方法则只查询软删除的数据

onlyTrashed()->restore()方法可以恢复被软删除(加了删除标记)的记录


模型类代码(app\index\model\Kc.php)

实例

<?php

namespace app\index\model;

use think\Model;
use think\model\concern\SoftDelete;
class Kc extends Model
{
	use SoftDelete;
    protected $table = 'kc';    //设置书库表名
    protected $pk = 'kc_id';    //设置主键
    protected $deleteTime = 'delete_time';  //设置删除标记字段(删除时间)
    protected $defaultSoftDelete = 0; //设置删除标记字段默认值
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

模型操作代码(app\index\controller\Kc.php)

实例

<?php
namespace app\index\controller;
use think\Controller;
use app\index\model\Kc as KcModel;
//模型管理数据表 
class Kc extends Controller
{
	//模型查询多条记录,利用回调函数传参(闭包)
	public function query(){
		$kcs = KcModel::all(function($query){
			$query->where('dj','<',500)->where('cd','济南');
		});
		echo '查询kc表中单价小于500,产地是济南的商品<br>';
		dump($kcs);
	}
	//模型删除
	public function delete(){
		KcModel::destroy(function($query){
			$query->where('mc','气缸体');
		});
	}
	//软删除验证
	public function softDelete(){
		//软删除的记录不会出现在普通查询结果中
		$res = KcModel::where('dj','>',3000)->select();
		dump($res);
		//查询结果不排除软删除的记录
		$res1 = KcModel::withTrashed()->Where('dj','>',3000)->select();
		dump($res1);
		//只查询软删除的记录
		$res2 = KcModel::onlyTrashed()->select();
		dump($res2);

	}


}

运行实例 »

点击 "运行实例" 按钮查看在线实例


批改状态:未批改

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学