model = $model; } /** * 获取所有记录 * * @param array $columns 要获取的字段 * @return \Illuminate\Database\Eloquent\Collection */ public function all(array $columns = ['*']) { return $this->model->all($columns); } /** * 分页获取记录 * * @param int $perPage 每页数量 * @param array $columns 要获取的字段 * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator */ public function paginate(int $perPage = 15, array $columns = ['*']) { return $this->model->paginate($perPage, $columns); } /** * 根据ID获取记录 * * @param int $id 记录ID * @param array $columns 要获取的字段 * @return Model|null */ public function find(int $id, array $columns = ['*']) { return $this->model->find($id, $columns); } /** * 根据条件获取第一条记录 * * @param array $conditions 查询条件 * @param array $columns 要获取的字段 * @return Model|null */ public function findBy(array $conditions, array $columns = ['*']) { $query = $this->model->query(); foreach ($conditions as $field => $value) { $query->where($field, $value); } return $query->first($columns); } /** * 根据条件获取多条记录 * * @param array $conditions 查询条件 * @param array $columns 要获取的字段 * @return \Illuminate\Database\Eloquent\Collection */ public function findAllBy(array $conditions, array $columns = ['*']) { $query = $this->model->query(); foreach ($conditions as $field => $value) { $query->where($field, $value); } return $query->get($columns); } /** * 创建记录 * * @param array $data 记录数据 * @return Model */ public function create(array $data) { return $this->model->create($data); } /** * 更新记录 * * @param int $id 记录ID * @param array $data 记录数据 * @return bool */ public function update(int $id, array $data) { $record = $this->find($id); if (!$record) { return false; } return $record->update($data); } /** * 删除记录 * * @param int $id 记录ID * @return bool */ public function delete(int $id) { $record = $this->find($id); if (!$record) { return false; } return $record->delete(); } /** * 批量删除记录 * * @param array $ids 记录ID数组 * @return int 删除的记录数 */ public function deleteMultiple(array $ids) { return $this->model->whereIn('id', $ids)->delete(); } /** * 获取记录总数 * * @param array $conditions 查询条件 * @return int */ public function count(array $conditions = []) { $query = $this->model->query(); foreach ($conditions as $field => $value) { $query->where($field, $value); } return $query->count(); } /** * 执行原生SQL查询 * * @param string $query SQL查询语句 * @param array $bindings 绑定参数 * @return array */ public function rawQuery(string $query, array $bindings = []) { return DB::select($query, $bindings); } }