FastAdmin在线命令增加导入功能

如果自己手动执行crud命令的话直接附加导入参数即可

 –import=1

整体效果:

修改command中add.html模板,增加导入选择框

<div class="col-xs-3">
                                        <input checked="" name="force" type="hidden" value="0">
                                        <label class="control-label" data-toggle="tooltip" title="选中后,如果已经存在同名文件将被覆盖。如果是删除将不再提醒">
                                            <input name="force" type="checkbox" value="1">
                                            强制覆盖模式
                                        </label>
                                    </div>
                                    <div class="col-xs-3">
                                        <input checked="" name="import" type="hidden" value="0">
                                        <label class="control-label" data-toggle="tooltip" title="选中后,会自动生成导入功能">
                                            <input name="import" type="checkbox" value="1">
                                            开启导入
                                        </label>
                                    </div>

修改controller的command控制器,增加导入相关

$allowfields = [
            'crud' => 'table,controller,model,fields,force,local,delete,menu,import',
            'menu' => 'delete,force,import',
            'min'  => 'module,resource,optimize',
        ];
foreach ($allowfields as $key => $param) {
            if (in_array($key, ['force', 'delete', 'local','import'], true)) {
                if (!in_array($param, [0, 1, '0', '1'], true)) {
                    $this->error(__('参数 %s 的值不正确', $key));
                }
                $param = (int)$param;
            } elseif ($key === 'menu') {
                if (!preg_match('/^\d+$/', (string)$param)) {
                    $this->error(__('参数 %s 的值不正确', $key));
                }
                $param = (int)$param;
            } elseif (in_array($key, ['table', 'model'])) {
                if (!preg_match('/^[a-zA-Z0-9_]+$/', (string)$param)) {
                    $this->error(__('参数 %s 的值不正确', $key));
                }
            } elseif ($key === 'controller') {
                if (!preg_match('/^[a-zA-Z0-9_\/]+$/', (string)$param)) {
                    $this->error(__('参数 %s 的值不正确', $key));
                }
            } elseif (in_array($key, ['module', 'resource', 'optimize'])) {
                $validValues = [
                    'module'   => ['all', 'backend', 'frontend'],
                    'resource' => ['all', 'js', 'css'],
                    'optimize' => ['uglify', 'closure'],
                ];
                if (!in_array($param, $validValues[$key], true)) {
                    $this->error(__('参数 %s 的值不正确', $key));
                }
            }
            $argv[] = "--{$key}=" . (is_array($param) ? implode(',', $param) : $param);
        }