php 特征类trait 不能parent方式重写调用

实例场景:

在现有的站点分类加上type查询参数限制,

解决办法:

  1. 在对应方法上加上type参数

  2. 使用php trait 特征类进行处理(本文使用这个方式)

使用thinkphp 模型方式查询数据可以使用base 方法来操作返回新的全局作用域&query

protected function base($query)
{
    $query = $this->traitBase($query);
    $query->where('type', '=', 3);
    return $query;
}


注意点:当前是否使用了use trait特征类,如果使用了特征类则需要注意base 类是否重复定义,因为trait类不支持parent直接调用

解决方法:使用as 为trait方法指定别名调用

use SoftDelete {
       SoftDelete::base as traitBase;// traitBase 为指定的别名方法名
}

特征类参考说明:php特征类参考

评论