修复生成控制器因路由命名缺少下划线导致的404问题

This commit is contained in:
lujihong
2020-07-12 16:11:49 +08:00
parent 317731c57b
commit 245ca3bad9

View File

@@ -26,7 +26,8 @@ class ControllerMaker extends AbstractMaker
if(!$form) { if(!$form) {
return false; return false;
} }
$options = $this->optionsMake($config, strtolower($model_name)); $route = $this->splitToRouteName($model_name);
$options = $this->optionsMake($config, $route);
$class->addMethod('scaffoldOptions')->setBody("return " . $this->arrayStr($options) . ";"); $class->addMethod('scaffoldOptions')->setBody("return " . $this->arrayStr($options) . ";");
foreach($config['init_hooks'] as $item) { foreach($config['init_hooks'] as $item) {
$class->addMethod($item)->setParameters($this->hooksParameter($item)); $class->addMethod($item)->setParameters($this->hooksParameter($item));
@@ -39,6 +40,11 @@ class ControllerMaker extends AbstractMaker
return $class_namespace . '\\n' . $controller_name; return $class_namespace . '\\n' . $controller_name;
} }
public function splitToRouteName($greatHumpStr){
$arr = preg_split('/(?<=[a-z0-9])(?=[A-Z])/x', $greatHumpStr);
return strtolower(implode("_", $arr));
}
public function hooksParameter($hook_name) public function hooksParameter($hook_name)
{ {
$map = [ $map = [