find(); $name = $info->name; $appname = app('http')->getName();// 获取应用名 $classname = self::getCamel($info->name);//获取类名 $dirname = self::parseDirname($info->dirname);// 文件保存位置 if(!empty($dirname)){ $path = root_path()."app".DS.$appname.DS."controller".DS.$dirname.DS; }else{ $path = root_path()."app".DS.$appname.DS."controller".DS; } $filename = $path.$classname.'.php'; if(file_exists($filename)){ @unlink($filename); } } /** * @title: 生成控制器文件 * @desc: 描述 * @param {int} $model_id * @return {*} * @author: Rock * @method: POST * @Date: 2023-04-23 17:12:04 */ static public function createControllerFile(int $model_id,string $username,array $createList=[],string $showTitle='') { $info = ModelManage::where('id',$model_id)->find(); $name = $info->name; $pk = ModelManage::pk($name); $dirname = self::parseDirname($info->dirname);// 文件保存位置 $fileTitle = self::createTitle($info->title,$username);//生成文件注释 $fieldList = ModelFields::where('model_name',$name)->where('status',1)->select()->toArray();//获取字段列表 $classname = self::getCamel($info->name);//获取类名 $appname = app('http')->getName();// 获取应用名 $createWhere = self::createQueryWhere($fieldList,$username);//创建查询条件代码 $getList = self::createGetList($fieldList,$username);//创建获取列表代码 $getInfo = self::createGetInfo($fieldList,$username,$pk);//创建获取单个信息代码 $doEdit = self::createDoEdit($fieldList,$username,$pk);//创建新增编辑代码 $doDelete = self::createDoDelete($username,$pk,$fieldList);// 创建删除代码 $getOptions = self::createGetOptions($fieldList,$classname,$username);//创建获取可选项代码 $changeStatus = self::createChangeStatus($fieldList,$pk);//启用/禁用 $doExport = self::createDoExpport($fieldList,$info->title,$username);//导出 $getTree = self::createGetTree($fieldList,$username,$pk); if(!empty($dirname)){ $path = root_path()."app".DS.$appname.DS."controller".DS.$dirname.DS; $namespace = "app\\$appname\controller\\".str_replace(DS,'\\',$dirname); }else{ $path = root_path()."app".DS.$appname.DS."controller".DS; $namespace = "app\\$appname\controller"; } if(!is_dir($path)){ mkdir($path,0777,true); } $filename = $path.$classname.'.php'; $dirNamespace = str_replace(DS,'\\',$dirname); $content = <<model = new {$classname}Model; } $createWhere $getList $getTree $getInfo $doEdit $doDelete $getOptions $changeStatus $doExport public function __call(\$name,\$arguments) { return res(2,"方法{\$name}不存在"); } } CONTROLLER; FileServer::writeLine($filename,$content); } /** * @title: 格式化dir路径 * @desc: 描述 * @param {string} $dirname * @return {*} * @author: Rock * @method: POST * @Date: 2023-04-24 14:46:37 */ static public function parseDirname(string $dirname) { return !empty($dirname)?explode(DS,str_replace(['/','\\'],DS,$dirname))[0]:''; } /** * @title: 生成控制器注释 * @desc: 描述 * @return {*} * @author: Rock * @method: POST * @Date: 2023-04-18 15:13:19 */ static public function createTitle(string $title,$username) { $date = date('Y-m-d H:i:s'); $title = <<