From 58286b181bf7369d35294f81a81e46d4b47e50f8 Mon Sep 17 00:00:00 2001 From: JaguarJack Date: Tue, 27 Apr 2021 18:33:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E7=94=9F=E6=88=90=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=AD=97=E6=AE=B5=E5=B1=9E=E6=80=A7=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extend/catcher/generate/Generator.php | 2 -- extend/catcher/generate/factory/Model.php | 28 +++++++++++++++++++++-- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/extend/catcher/generate/Generator.php b/extend/catcher/generate/Generator.php index bafd572..bbcb347 100644 --- a/extend/catcher/generate/Generator.php +++ b/extend/catcher/generate/Generator.php @@ -11,7 +11,6 @@ use catcher\generate\factory\SQL; use catcher\generate\support\Table; use catcher\library\Composer; use catcher\Utils; -use think\facade\Db; class Generator { @@ -45,7 +44,6 @@ class Generator $files = []; $migration = ''; - $table = null; try { if ($params['create_controller']) { diff --git a/extend/catcher/generate/factory/Model.php b/extend/catcher/generate/factory/Model.php index b343899..9d40ac8 100644 --- a/extend/catcher/generate/factory/Model.php +++ b/extend/catcher/generate/factory/Model.php @@ -72,7 +72,9 @@ class Model extends Factory $build->use((new Uses())->name(BaseOptionsTrait::class)); $build->use((new Uses())->name(ScopeTrait::class)); }) - ->class((new Classes($modelName))->extend('Model')->docComment(), + ->class((new Classes($modelName)) + ->extend('Model') + ->docComment($this->buildClassComment($table)), function (Classes $class) use ($softDelete, $table) { if (!$softDelete) { $class->addTrait( @@ -94,4 +96,26 @@ class Model extends Factory }); })->getContent(); } -} \ No newline at end of file + + /** + * 提供模型字段属性提示 + * + * @time 2021年04月27日 + * @param $table + * @return string + */ + protected function buildClassComment($table): string + { + $fields = Db::name($table)->getFieldsType(); + + $comment = '/**' . PHP_EOL . ' *' . PHP_EOL; + + foreach ($fields as $field => $type) { + $comment .= sprintf(' * @property %s $%s', $type, $field) . PHP_EOL; + } + + $comment .= ' */'; + + return $comment; + } +}