diff --git a/app/Command/TestCommand.php b/app/Command/TestCommand.php index 5c8e6e7..119a46e 100644 --- a/app/Command/TestCommand.php +++ b/app/Command/TestCommand.php @@ -37,7 +37,7 @@ class TestCommand extends HyperfCommand { $repository = di()->get(ExampleRepository::class); - $repository->case5(); + $repository->case4(); //$api = config('juhe_api.ip'); //$options = []; diff --git a/app/Repository/BaseRepository.php b/app/Repository/BaseRepository.php index d9894ca..9e0354f 100644 --- a/app/Repository/BaseRepository.php +++ b/app/Repository/BaseRepository.php @@ -45,7 +45,7 @@ abstract class BaseRepository use RepositoryTrait; /** - * 获取单条数据 + * 查询单条数据 * * @param array $where 查询条件 * @param string[] $fields 查询字段 @@ -66,7 +66,7 @@ abstract class BaseRepository } /** - * 获取多条数据 + * 查询多条数据 * * @param array $where 查询条件 * @param string[] $fields 查询字段 @@ -85,7 +85,7 @@ abstract class BaseRepository } /** - * 分页查询数据 + * 查询分页数据 * * @param array $where 查询条件 * @param array $fields 查询字段 @@ -115,7 +115,7 @@ abstract class BaseRepository } /** - * 批量更新数据 + * 根据条件批量更新数据 * * @param array $where 查询条件 * @param array $values 更新字段 @@ -132,14 +132,12 @@ abstract class BaseRepository $when = ''; foreach ($item['filter'] as $k => $v) { - $when .= sprintf(" when '%s' then '%s'", $k, $v); + $when .= sprintf("when '%s' then '%s' ", $k, $v); } $key = $item['field'] ?? $field; - $string = "case $key {$when} else '{$item['default']}' end"; - - $data[$field] = Db::raw($string); + $data[$field] = Db::raw("case $key {$when} else '{$item['default']}' end"); } if (empty($data)) return 0; @@ -151,15 +149,15 @@ abstract class BaseRepository * 删除数据 * * @param array $where 删除的条件 - * @return array + * @return int */ - final public function delete(array $where): array + final public function delete(array $where): int { return $this->buildWhere($where)->delete(); } /** - * 打印查询 sql + * 打印查询 SQL * * @param array $where 查询条件 * @return string @@ -170,7 +168,7 @@ abstract class BaseRepository } /** - * 原生 sql 查询 + * 原生 SQL 查询 * * @param string $query * @param array $bindings @@ -183,7 +181,7 @@ abstract class BaseRepository } /** - * 通过 model 读取分页信息 + * 通过 Model 读取分页数据 * * @param Builder $model 查询 Model * @param array $fields 查询字段 diff --git a/app/Repository/ExampleRepository.php b/app/Repository/ExampleRepository.php index 2e9dd80..229dfad 100644 --- a/app/Repository/ExampleRepository.php +++ b/app/Repository/ExampleRepository.php @@ -143,6 +143,26 @@ class ExampleRepository extends BaseRepository // 'gender' => 2, // 'updated_at' => date('Y-m-d H:i:s'), // ]); + + // 批量更新数据 + // $this->batchUpdate([ + // 'id:gt' => 2054 + // ], [ + // 'email' => '', // 不使用条件判断,默认更新 + // 'gender' => [ + // 'field' => 'id',//判断的字段,可选(不设置默认使用当前字段) + // 'default' => 0, // 默认字段值 + // 'filter' => [ // 数据判断 + // '2054' => 1, + // '2055' => 2, + // ] + // ], + // ]); + + // 批量删除数据 + // $this->delete([ + // 'id' => 4241 + // ]); } public function case5() @@ -187,21 +207,11 @@ class ExampleRepository extends BaseRepository // 原生 SQL 查询 // $this->sql('SELECT * FROM `lar_users` WHERE id = ?', [2054]); + } - // 批量更新数据 - // $this->batchUpdate([ - // 'id:gt' => 2054 - // ], [ - // 'email' => '', // 不使用条件判断,默认更新 - // 'gender' => [ - // 'field' => 'id',//判断的字段,可选(不设置默认使用当前字段) - // 'default' => 0, // 默认字段值 - // 'filter' => [ // 数据判断 - // '2054' => 1, - // '2055' => 2, - // ] - // ], - // ]); + public function other() + { + $model = $this->getModel(); } // where 条件查询案例 diff --git a/app/Repository/RepositoryTrait.php b/app/Repository/RepositoryTrait.php index 423b25a..bd8f073 100644 --- a/app/Repository/RepositoryTrait.php +++ b/app/Repository/RepositoryTrait.php @@ -116,6 +116,16 @@ trait RepositoryTrait $this->model = $model; } + /** + * 获取 Model 类 + * + * @return Model + */ + final public function getModel(): Model + { + return $this->model; + } + /** * 调用 model 的方法 * @@ -142,11 +152,11 @@ trait RepositoryTrait } /** - * 获取新的查询 Model + * 获取新的查询构造器 * * @return Builder */ - protected function getNewModel(): Builder + protected function getQuery(): Builder { return $this->model->newQuery(); } @@ -159,7 +169,7 @@ trait RepositoryTrait */ final public function buildWhere(array $where = []): Builder { - $model = $this->getNewModel(); + $model = $this->getQuery(); // 处理排序数据 if ($order = Arr::pull($where, 'order by')) {