diff --git a/extend/catcher/command/Tools/ExportDataCommand.php b/extend/catcher/command/Tools/ExportDataCommand.php index 7aa3888..d64301b 100644 --- a/extend/catcher/command/Tools/ExportDataCommand.php +++ b/extend/catcher/command/Tools/ExportDataCommand.php @@ -3,6 +3,7 @@ declare (strict_types = 1); namespace catcher\command\Tools; +use catcher\CatchAdmin; use catcher\facade\Http; use catcher\Tree; use catcher\Utils; @@ -23,24 +24,43 @@ class ExportDataCommand extends Command $this->setName('export') ->addArgument('table', Argument::REQUIRED, 'export tables') ->addOption('pid', '-p', Option::VALUE_REQUIRED, 'parent level name') + ->addOption('module', '-m', Option::VALUE_REQUIRED, 'module name') ->setDescription('Just for catchAdmin export data'); } protected function execute(Input $input, Output $output) { $table = Utils::tablePrefix() . $input->getArgument('table'); - $parent = $input->getOption('pid'); + $module = $input->getOption('module'); - $data = Db::name($table)->where('deleted_at', 0)->select()->toArray(); + if ($module) { + $data = Db::name($table)->where('deleted_at', 0) + ->where('module', $module) + ->select() + ->toArray(); + } else { + $data = Db::name($table)->where('deleted_at', 0)->select()->toArray(); + } if ($parent) { $data = Tree::done($data, 0, $parent); } - file_put_contents(root_path() . DIRECTORY_SEPARATOR . $table . '.php', "exportSeed($data, $module); + } else { + file_put_contents(root_path() . DIRECTORY_SEPARATOR . $table . '.php', "info('succeed!'); } + + protected function exportSeed($data, $module) + { + $stub = file_get_contents(dirname(__DIR__) . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR . 'permissionSeed.stub'); + + file_put_contents(CatchAdmin::moduleSeedsDirectory($module) . 'permissionSeed.php', str_replace('{DATA}', $data, $stub)); + } } diff --git a/extend/catcher/command/stubs/permissionSeed.stub b/extend/catcher/command/stubs/permissionSeed.stub index e69de29..410b31c 100644 --- a/extend/catcher/command/stubs/permissionSeed.stub +++ b/extend/catcher/command/stubs/permissionSeed.stub @@ -0,0 +1,24 @@ +getPermissions(), 'permissions', 'parent_id'); + } + + protected function getPermissions() + { + {DATA} + } +}