diff --git a/crmeb/app/services/system/SystemCrudServices.php b/crmeb/app/services/system/SystemCrudServices.php index 6f0673bc4..d48bacfec 100644 --- a/crmeb/app/services/system/SystemCrudServices.php +++ b/crmeb/app/services/system/SystemCrudServices.php @@ -538,7 +538,9 @@ class SystemCrudServices extends BaseServices ]); //生成验证器 $validate = app()->make(Validate::class); - $validate->setFilePathName($filePath['validate'] ?? '')->setbasePath($basePath)->handle($tableName); + $validate->setFilePathName($filePath['validate'] ?? '')->setbasePath($basePath)->handle($tableName, [ + 'field' => $options['fromField'], + ]); //生成控制器 $controller = app()->make(Controller::class); $controller->setFilePathName($filePath['controller'] ?? '')->setbasePath($basePath)->handle($tableName, [ diff --git a/crmeb/crmeb/services/crud/Service.php b/crmeb/crmeb/services/crud/Service.php index 43aded7dc..995a75a15 100644 --- a/crmeb/crmeb/services/crud/Service.php +++ b/crmeb/crmeb/services/crud/Service.php @@ -148,6 +148,7 @@ class Service extends Make */ protected function getframeImageOnePhpContent(string $field, string $name, bool $required = false, string $icon = 'ios-add', string $width = '950px', string $height = '505px') { + $name = addslashes($name); $requiredText = $required ? '->required()' : ''; $content = << '$field']), \$info['$field'] ?? '')->icon('$icon')->width('$width')->height('$height')->modal(['footer-hide' => true])$requiredText @@ -170,6 +171,7 @@ CONTENT; */ protected function getframeImagesPhpContent(string $field, string $name, bool $required = false, string $icon = 'ios-images', int $maxLength = 10, string $width = '950px', string $height = '505px') { + $name = addslashes($name); $requiredText = $required ? '->required()' : ''; $content = << '$field', 'type' => 'many', 'maxLength' => $maxLength]), \$info['$field'] ?? [])->maxLength($maxLength)->icon('$icon')->width('$width')->height('$height')->modal(['footer-hide' => true])$requiredText diff --git a/crmeb/crmeb/services/crud/Validate.php b/crmeb/crmeb/services/crud/Validate.php index 0bcf3b099..ba19816f6 100644 --- a/crmeb/crmeb/services/crud/Validate.php +++ b/crmeb/crmeb/services/crud/Validate.php @@ -38,6 +38,43 @@ class Validate extends Make return 'app' . DS . 'adminapi' . DS . 'validate' . DS . 'crud'; } + /** + * @param string $name + * @param array $options + * @return Validate + * @author 等风来 + * @email 136327134@qq.com + * @date 2023/4/23 + */ + public function handle(string $name, array $options = []) + { + [$rule, $message] = $this->getRuleContent($options['field']); + $this->value['rule-php'] = $rule; + $this->value['message-php'] = $message; + return parent::handle($name, $options); // TODO: Change the autogenerated stub + } + + /** + * @param array $field + * @return array + * @author 等风来 + * @email 136327134@qq.com + * @date 2023/4/23 + */ + protected function getRuleContent(array $field) + { + $content = []; + $message = []; + foreach ($field as $item) { + $item['name'] = addslashes($item['name']); + if ($item['required']) { + $content[] = $this->tab(2) . '\'' . $item['field'] . '\'=>\'require\''; + $message[] = $this->tab(2) . '\'' . $item['field'] . '.require\'=>\'' . $item['name'] . '必须填写\''; + } + } + return [implode("\n", $content), implode("\n", $message)]; + } + /** * 模板文件配置 * @param string $type diff --git a/crmeb/crmeb/services/crud/stubs/validate/crudValidate.stub b/crmeb/crmeb/services/crud/stubs/validate/crudValidate.stub index 1c952bae7..b77ce6a09 100644 --- a/crmeb/crmeb/services/crud/stubs/validate/crudValidate.stub +++ b/crmeb/crmeb/services/crud/stubs/validate/crudValidate.stub @@ -33,14 +33,14 @@ class {%nameCamel%}Validate extends Validate * @var array */ protected $rule = [ - +{%rule-php%} ]; /** * @var array */ protected $message = [ - +{%message-php%} ]; /**