原创
Kartik Export —— 自动从filterModel中获得题目文字
Yii的Model是自带Label的,显示表格时会自动从Model中获取Label并显示,但是在导出到文件时,却并不能自动获取Label,经由跟踪发现,问题出在如下代码:
public function initExport()
{
......
$this->setDefaultStyles('header');
$this->setDefaultStyles('box');
$this->filterModel = null;
$this->setDefaultExportConfig();
......
}
注意到这里有个$this->filterModel = null,这就导致后面想凭据filterModel获取字段题目的时刻,就没有办法得到了。
修改方案,首先从Kartik Export继续一个子类,然后在子类重载initExport和getColumnHeader接口,代码如下:
public function initExport()
{
// 这样处置,使得列题目可以跟grid一样,从filterModel中获取
$filterModel = $this->filterModel;
parent::initExport();
$this->filterModel = $filterModel;
}
/** 通过filterModel的属性,获得字段的题目文字
* @param \yii\grid\DataColumn $col
* @return string
*/
public function getColumnHeader($col)
{
$label = parent::getColumnHeader($col);
if ($col->label === null) {
if ($this->filterModel !== null && $this->filterModel instanceof Model) {
$label = $this->filterModel->getAttributeLabel($col->attribute);
}
}
return $label;
}
©著作权归作者所有:来自51CTO博客作者tywali的原创作品,如需转载,请注明出处,否则将追究法律责任
若是文章对你有辅助,请赞一下!
赞赏
,,www.allbet8.us欢迎进入环球UG官网(UG环球),环球UG官方网站:www.ugbet.net开放环球UG网址访问、环球UG会员注册、环球UG代理申请、环球UG电脑客户端、环球UG手机版下载等业务。
0人进行了赞赏支持
PHP Yii2
PHP
0
珍藏
上一篇:CentOS下git push/... 下一篇:Kartik Export ——...
网友评论