* +---------------------------------------------------------------------- */ namespace App\Http\Dao\Access; use App\Http\Dao\BaseDao; use App\Http\Model\Assess\EnterpriseTemplate; use crmeb\traits\dao\ListSearchTrait; use crmeb\traits\dao\TogetherSearchTrait; use Illuminate\Contracts\Container\BindingResolutionException; /** * 考核模板 * Class EnterpriseTemplateDao. */ class EnterpriseTemplateDao extends BaseDao { use ListSearchTrait; use TogetherSearchTrait; /** * 基础查询列表(通用). * @param array $where 条件 * @param array|string[] $field 显示字段 * @param int $page 页码 * @param int $limit 展示条数 * @param null|array|string $sort 排序 * @param array $with 关联 * @return array * @throws BindingResolutionException * @throws \ReflectionException */ public function getList(array $where, array $field = ['*'], int $page = 0, int $limit = 0, $sort = null, array $with = []) { return $this->search($where)->select($field)->when($page && $limit, function ($query) use ($page, $limit) { $query->forPage($page, $limit); })->when($limit, function ($query) use ($limit) { $query->limit($limit); })->when($sort, function ($query) use ($sort) { if (is_array($sort)) { foreach ($sort as $k => $v) { if (is_numeric($k)) { $query->orderByDesc($v); } else { $query->orderBy($k, $v); } } } else { $query->orderByDesc($sort); } })->with($with)->get(); } /** * @return mixed|string */ protected function setModel() { return EnterpriseTemplate::class; } }