优化代码
parent
d07ae5203f
commit
aafefbdffa
|
@ -37,7 +37,7 @@ class TestCommand extends HyperfCommand
|
|||
{
|
||||
$repository = di()->get(ExampleRepository::class);
|
||||
|
||||
$repository->case5();
|
||||
$repository->case4();
|
||||
|
||||
//$api = config('juhe_api.ip');
|
||||
//$options = [];
|
||||
|
|
|
@ -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 查询字段
|
||||
|
|
|
@ -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 条件查询案例
|
||||
|
|
|
@ -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')) {
|
||||
|
|
Loading…
Reference in New Issue