# 渲染输出

导入构建器渲染输出

  • 方法一:页面内只有单一导入时

    注意!此方法仅支持渲染一个导入构建器,不需要写视图文件

    控制器代码示例如下:

    namespace app\demo\controller;
    
    class FormDemo {
    
        public function demo(){
            $builder=YI('demo')
                ->sheets("一年级","二年级","三年级","四年级")
                ->cols([
                    'name' => [
                        "title" => '姓名',
                        "default" => "小王",
                        "verify" => "require|chs",
                        "desc" => "必填,只能输入汉字",
                    ],
                    'sex' => [
                        "title" => '性别',
                        'default' => '男',
                        'verify' => 'require|in:男,女',
                        "desc" => "必填,男/女",
                    ],
                    'age' => [
                        "title" => '年龄',
                        'default' => '18',
                        'verify' => 'require|positiveInteger',
                        "desc" => "必填,正整数",
                    ]
                ])
                ->rows(function (YunjImport $builder,$rows){
                    $datas = [];
                    foreach ($rows as $row) {
                        $rowData = $row->getData();
                        $datas[] = [
                                "grade" => Grade::getValueByTitle($rowData["sheet"]),
                                "sex" => Sex::getValueByTitle($rowData["sex"]),
                            ] + $rowData;
                    }
                    $this->model->addRows($datas);
                    return true;
                });
            return view_import($builder);
        }
    }
    

    不需要视图文件!

  • 方法二:自定义页面内容时

    注意!此方法支持一个页面渲染多个导入构建器,需要写视图文件

    控制器代码示例如下:

    namespace app\demo\controller;
    
    class FormDemo {
    
        public function demo(){
            // 导入构建器配置参考方法一
            $builder=YI('demo');
            // 多个构建器可反复调用此方法 $builder->assign();
            $builder->assign();
            return $this->fetch();
        }
    }
    

    视图代码示例如下:

    <!-- 继承公共模板文件 -->
    {extend name="$adminPage"}
    
    <!-- 重写content内容 -->
    {block name="content"}
    <!-- import标签定义type属性为yunj,id与后端数据导入构建器id一致 -->
    <import type="yunj" id="demo"></import>
    {/block}