thinkphp5 模型的学习使用

发表于

目录结构如下,新建了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);
    }
}

—————————————-分隔符————————2017年6月12日 14:47:50———————

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注