Login.php
<?php
namespace app\index\controller;
use think\Controller;
use Gregwar\Captcha\CaptchaBuilder;
use think\Loader;
use app\index\model\Data;
use think\Db;
class Login extends Controller
{
public function _initialize()
{
//parent::__construct();
$this->data = Loader::model('data');
}
public function delData()
{
//刪除id=16的記錄
$res = Data::destroy(16);
//返回int(1)受影響記錄數量
dump($res);
}
//刪除后進行查詢驗證
public function selData()
{
//返回為null,表示刪除成功
//dump(Data::get(16));
$res = Data::select();
foreach ($res as $k => $v) {
//getData()函數可以獲取對象里面的數據
dump($v->getData());
}
}
//默認情況下,查詢到的數據不包含軟刪除數據,如果需要包含軟刪除的數據
public function selData1()
{
//查詢單條數據
$res = Data::withTrashed(true)->find();
dump($res->getData());
//查詢多條數據
$res = Data::withTrashed(true)->select();
foreach ($res as $k => $v) {
dump($v->getData());
}
}
//如果只想刪除軟刪除的數據,相當於查看回收站
public function selData2()
{
//單條數據
$res = Data::onlyTrashed(true)->find();
dump($res->getData());
//多條數據
$res = Data::onlyTrashed(true)->select();
foreach ($res as $key => $val) {
dump($val->getData());
}
}
//恢復軟刪除記錄
//控制器中將被軟刪除的delete_time更新為null即可
public function selData3()
{
$res = Data::update([
'delete_time' => null,
], ['id' => 16]);
dump($res);
//現在就可以獲取重新被軟刪除的記錄了
$res = Data::get(16);
dump($res->getData());
}
//物理刪除是指徹底將該記錄從表中移除,不可恢復。給destroy()方法傳入第二個參數true
public function delReal()
{
//刪除id為16的記錄
$res = Data::destroy(16, true);
dump($res);
//使用delete(true)實現物理刪除
$res = Data::where('id', 18)->delete();
dump($res);
}
}
Data.php
<?php
namespace app\index\model;
use think\Db;
use think\Model;
use traits\model\SoftDelete;
class Data extends Model
{
//在當前類導入,就可以使用其中的方法啦
use SoftDelete;
//如果你的字段名為框架默認的delete_time,可省略
protected $deleteTime = 'delete_time';
protected $table = 'bbs_data';
public function getMenu()
{
$res = Db::name($this->table)->select();
return $res;
}
}