# 基础/示例
# 构建导入构建器
通过公共方法YI('demo')
返回一个id为demo
的导入构建器对象。
注意!YunjImport 的完全限定名称为:\yunj\core\builder\YunjImport
- 方式一:链式操作
$builder=YI('demo')
->sheets(["Sheet1","Sheet2"])
->cols(function(YunjImport $builder, $sheet){...})
->limit(20)
->tips([...])
->row(function(YunjImport $builder,$row){...});
- 方式二:数组配置
$args = [
"sheets"=>["Sheet1","Sheet2"],
"cols"=>function(YunjImport $builder, $sheet){...},
"limit"=>20,
"tips"=>[...],
"row"=>function(YunjImport $builder,$row){...}
];
$builder=YI('demo',$args);
# 渲染输出
详见:导入渲染输出
方法一:页面内只有单一导入时,可参考如下方法:
注意!此方法仅支持渲染一个导入构建器,不需要写视图文件
// 控制器方法中调用如下方法 $builder = ...; return view_import($builder);
方法二:自定义页面内容时,可调用如下方法:
注意!此方法支持一个页面渲染多个导入构建器,需要写视图文件
// 控制器方法中调用如下方法 $builder->assign(); // 视图渲染 return $this->fetch();
# 视图页面
<!-- 继承公共模板文件 -->
{extend name="$adminPage"}
<!-- 重写content内容 -->
{block name="content"}
<!-- import标签定义type属性为yunj,id与后端数据导入构建器id一致 -->
<import type="yunj" id="demo"></import>
{/block}
提示:支持一个页面渲染多个数据导入
小技巧:当页面只有一个导入时,默认头部固定。示例如下:
{extend name="$adminPage"}
{block name="content"}
<import type="yunj" id="demo"></import>
{/block}
# 简单示例
# 代码实现如下:
public function sample() {
$builder = YI('demo')
->cols(function (YunjImport $builder, $sheet) {
return [
'name'=>[
"title"=>'姓名',
"default"=>"小王",
"verify"=>'require|chs',
"desc"=>"必填",
],
'age'=>[
"title"=>'年龄',
"default"=>18,
"verify"=>'require|positiveInt',
"desc"=>"必填,必须为正整数",
],
'sex'=>[
"title"=>'性别',
"default"=>"男",
"verify"=>"require|in:男,女",
"desc"=>"必填,可选值:男/女",
]
];
})
->row(function (YunjImport $builder, $row) {
// 导入成功(可不设置,默认为成功)
//$row->importSuccess();
// 导入失败
$row->importFail('演示数据不能进行导入操作');
});
return view_import($builder);
}