Compare commits

2 Commits

Author SHA1 Message Date
effde58a53 修复CURD代码生成的关联报错 2026-04-01 14:41:41 +08:00
2bb589c4e5 修复CURD代码生成模块-生成的代码报错500 2026-04-01 14:30:18 +08:00
5 changed files with 44 additions and 10 deletions

View File

@@ -3,6 +3,8 @@
namespace {%namespace%};
{%use%}
use app\common\controller\Backend;
use support\Response;
use Webman\Http\Request as WebmanRequest;
/**
* {%tableComment%}

View File

@@ -3,11 +3,11 @@
* 查看
* @throws Throwable
*/
public function index(): void
protected function _index(): Response
{
// 如果是 select 则转发到 select 方法,若未重写该方法,其实还是继续执行 index
if ($this->request->param('select')) {
$this->select();
if ($this->request && $this->request->get('select')) {
return $this->select($this->request);
}
/**
@@ -24,7 +24,7 @@
->order($order)
->paginate($limit);
$this->success('', [
return $this->success('', [
'list' => $res->items(),
'total' => $res->total(),
'remark' => get_route_remark(),

View File

@@ -1,6 +1,6 @@
public function initialize(): void
protected function initController(WebmanRequest $request): ?Response
{
parent::initialize();
$this->model = new \{%modelNamespace%}\{%modelName%}();{%filterRule%}
return null;
}

View File

@@ -301,7 +301,40 @@ trait Backend
/**
* 加载为 select(远程下拉选择框)数据,子类可覆盖
*/
protected function _select(): void
protected function _select(): Response
{
if (empty($this->model)) {
return $this->success('', [
'list' => [],
'total' => 0,
]);
}
$pk = $this->model->getPk();
// 远程下拉只要求包含主键与可显示字段;这里尽量返回主键 + quickSearch 字段,避免全量字段带来性能问题
$fields = [$pk];
$quickSearchArr = is_array($this->quickSearchField) ? $this->quickSearchField : explode(',', (string) $this->quickSearchField);
foreach ($quickSearchArr as $f) {
$f = trim((string) $f);
if ($f === '') continue;
$f = str_contains($f, '.') ? substr($f, strrpos($f, '.') + 1) : $f;
if ($f !== '' && !in_array($f, $fields, true)) {
$fields[] = $f;
}
}
list($where, $alias, $limit, $order) = $this->queryBuilder();
$res = $this->model
->field($fields)
->alias($alias)
->where($where)
->order($order)
->paginate($limit);
return $this->success('', [
'list' => $res->items(),
'total' => $res->total(),
]);
}
}

View File

@@ -214,9 +214,8 @@ class Backend extends Api
public function select(WebmanRequest $request): Response
{
$response = $this->initializeBackend($request);
if ($response !== null) return $response;
$this->_select();
return $this->success();
if ($response instanceof Response) return $response;
return $this->_select();
}
/**