tp6模型查询时,如何自动过滤一些数据表字段,例如delete_time。


首先创建一个基础类模型

<?php
namespace app\common\base;

use think\model;

abstract class BaseModel extends model
{
    // 忽略的字段
    protected $hidden = ['create_time','update_time', 'delete_time'];
    
}

设置里面的 $hidden 变量,要为数组。

后面的任何子级模型继承这个基础类模型就可以了。

<?php
namespace app\common\model;

use app\common\base\BaseModel;

class Product extends BaseModel
{
    protected $name = 'product';

    // 获取未下架产品
    public function getProductList()
    {
        return $this->where('status','<','3')
                    ->alias('a')
                    ->leftJoin('product_sales b','a.product_id = b.product_id')
                    ->select()->toArray();

    }
}

例如这个简单的查询,在 $this->select()->toArray() 之后,就会自动把 $hidden 里面的字段省略。

======================================================================================================

+++++++++++++++++++++++++++++++++++++++++++广告分割线+++++++++++++++++++++++++++++++++++++++++++++++++++

======================================================================================================