目录结构如下,新建了home模块,里面新建了controller、extra、model3个文件夹
controller控制器目录
extra默认加载目录,可以将公共的函数文件或者配置文件和数据库文件放在这里
model模型目录 这个里面的文件最好是基于数据库名来生成 比如我有数据库api_ad、api_ecword
这里主要介绍数据库的基本操作,查询和删除,修改和添加比较简单就是一个方法 save
查询可以用到find / get / select / all 几个常用操作
今天主要是在文档中看到一个软删除的操作,其原理就是在数据表里新增一个delete_time字段,这是tp5框架默认的操作字段,
字符类型可设为字符串类型或者其它可以为null的类型,以便后续操作,不要设为int类型,因为会导致软删除失效,具体自己去实验
首先model/Ad.php
<?php
namespace app\home\model;
use think\Model;
use traits\model\SoftDelete; //软删除需要用到
class Ad extends Model
{
use SoftDelete; //这里加上
// protected $deleteTime = ‘add_time’;
}
然后controller/Index.php
<?php
namespace app\home\controller;
use app\home\model\Ad;
use app\home\model\Ecword;
use think\Db;
class Index
{
public function index()
{
//这一段是用的Db操作
$a = config(‘database.database’);
$b = Db::getTableInfo(‘api_md5’);
$info = Db::table(‘api_ad’)->select();
Db::table(‘api_ad’)->delete([1, 2, 3, 4, 5, 6, 7, 8, 9]);
$ecword = new Ecword;
// var_dump($ecword->restore([‘id’ => 1]));
// var_dump(Ecword::onlyTrashed()->select());
// dump(Ecword::destroy(2));
//以下就是软删除和实际删除的结合运用
//恢复主键为10的数据
$ad = new Ad;
$ad->restore([‘ad_id’ => 10]);
//软删除主键为15,16,17,18,20的数据
Ad::destroy([15, 16, 17, 18, 20]);
//查询主键为10的数据
$adinfo = Ad::get(10);
//查询所有被软删除的数据
$abc = Ad::onlyTrashed()->select();
//真实删除已被软删除的数据
foreach ($abc as $k => $v) {
if ($v) {
Ad::destroy($v->ad_id, true);
}
}
$adinfo = Ad::select([10, 11, 19, 31]);
$adinfo = Ad::all([10, 11, 19, 31]);
var_dump($adinfo);
// var_dump(Ecword::destroy(1));
// var_dump($info);
// $data = Db::name(‘Ecword’)->select();
// var_dump($data);
}
}
发表回复