Yii2 Kartik导出未在本地主机上下载文件
我浏览了演示,阅读并应用了他们所说的一切。我的代码运行良好,到目前为止没有错误。但当我从下拉菜单中点击下载pdf时,会发生以下情况 取消阻止弹出窗口。我打开了它。 然后,一个新窗口打开,文本为“生成要导出的pdf” 但它什么也没用。它就像一个关于:空白页。我错过了什么。它可以在现场演示中完美地工作 index.phpYii2 Kartik导出未在本地主机上下载文件,yii2,Yii2,我浏览了演示,阅读并应用了他们所说的一切。我的代码运行良好,到目前为止没有错误。但当我从下拉菜单中点击下载pdf时,会发生以下情况 取消阻止弹出窗口。我打开了它。 然后,一个新窗口打开,文本为“生成要导出的pdf” 但它什么也没用。它就像一个关于:空白页。我错过了什么。它可以在现场演示中完美地工作 index.php $gridColumns = [ ['class' => 'kartik\grid\SerialColumn'], 'id', 'title'
$gridColumns = [
['class' => 'kartik\grid\SerialColumn'],
'id',
'title',
['class' => 'kartik\grid\ActionColumn'],
];
echo ExportMenu::widget([
'dataProvider' => $dataProvider,
'columns' => $gridColumns,
'target'=>ExportMenu::TARGET_POPUP,
]);
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'id' => 'w2',
//'pjax' => true,
'columns' => [
['class' => 'kartik\grid\CheckboxColumn'],
'user_id',
[ ...
以下是my$dataProvider
object(yii\data\ActiveDataProvider)[32]
public 'query' =>
object(yii\db\ActiveQuery)[34]
public 'sql' => null
public 'on' => null
public 'joinWith' => null
public 'select' => null
public 'selectOption' => null
public 'distinct' => null
public 'from' => null
public 'groupBy' => null
public 'join' => null
public 'having' => null
public 'union' => null
public 'params' =>
array (size=0)
empty
private '_events' (yii\base\Component) =>
array (size=0)
empty
private '_behaviors' (yii\base\Component) =>
array (size=0)
empty
public 'where' =>
array (size=1)
'conferenceId' => int 2
public 'limit' => null
public 'offset' => null
public 'orderBy' => null
public 'indexBy' => null
public 'modelClass' => string 'common\models\user\Abstracts' (length=28)
public 'with' => null
public 'asArray' => null
public 'multiple' => null
public 'primaryModel' => null
public 'link' => null
public 'via' => null
public 'inverseOf' => null
public 'key' => null
public 'db' => null
public 'id' => null
private '_sort' (yii\data\BaseDataProvider) => null
private '_pagination' (yii\data\BaseDataProvider) =>
object(yii\data\Pagination)[131]
public 'pageParam' => string 'page' (length=4)
public 'pageSizeParam' => string 'per-page' (length=8)
public 'forcePageParam' => boolean true
public 'route' => null
public 'params' => null
public 'urlManager' => null
public 'validatePage' => boolean true
public 'totalCount' => int 0
public 'defaultPageSize' => int 20
public 'pageSizeLimit' =>
array (size=2)
0 => int 1
1 => int 50
private '_pageSize' => int 2000
private '_page' => null
private '_keys' (yii\data\BaseDataProvider) => null
private '_models' (yii\data\BaseDataProvider) => null
private '_totalCount' (yii\data\BaseDataProvider) => null
private '_events' (yii\base\Component) =>
array (size=0)
empty
private '_behaviors' (yii\base\Component) => null
在我的工作软件中,我使用(所以弹出窗口没有问题) 而不是
'target'=>ExportMenu::TARGET_POPUP,
我看到你正在使用
$gridColumns = [
['class' => 'kartik\grid\SerialColumn'],
'id',
'title',
['class' => 'kartik\grid\ActionColumn'],
使用['class'=>'kartik\grid\SerialColumn'],
和['class'=>'kartik\grid\ActionColumn'],
导出菜单不需要它们,可能会导致问题。删除它们或分配不带变量的列。我将下面的代码放在一个活动表单中,该表单阻止提交请求
$gridColumns = [
['class' => 'kartik\grid\SerialColumn'],
'id',
'title',
['class' => 'kartik\grid\ActionColumn'],
];
echo ExportMenu::widget([
'dataProvider' => $dataProvider,
'columns' => $gridColumns,
'target'=>ExportMenu::TARGET_POPUP,
]);
Ass我一把代码从活动表单中取出,下载就毫不延迟地开始了
需要考虑的几点:
1) 如果您没有使用活动窗体,并且您执行了我所做的操作,请清理浏览器缓存
2) 确保您的服务器允许下载pdf文件(大小(对于其他文件),键入)
3) 交叉检查演示程序是否正在下载文件,而您无法在本地主机或您的实时站点上下载,您的服务器肯定会阻止下载
4) 如果演示也不适用于您,那么问题在于您的浏览器,而不是代码或服务器
如果存在任何其他问题,请转到链接并阅读讨论。这很有帮助
这通常需要一点时间多少时间?我应该等多久?一分钟左右?或者更多?有时一分钟。还要检查您的Web服务器是否正确配置为mime pdf。并确保您的块弹出窗口已禁用,否则无法工作,甚至无法下载文本文件,更不用说pdf了。。我等了大约一个小时。可能还有其他一些问题,你可以指出!使用ExportMenu::widget、GridView::widget、namespace和Use向我显示您的视图您确定数据提供程序中有数据吗?是的,数据提供程序中大约有10到11列,其中只有2列有数据。。。只有一行一行用于测试目的。我已经用“我的$dataProvider中有什么数据”更新了问题。对不起,我的意思是在$dataProvider->models中(数据在此变量中)。che如果$dataProvider->models包含datayes,则该行数据会重复两次。一个在_属性下,一个在_旧属性下
$gridColumns = [
['class' => 'kartik\grid\SerialColumn'],
'id',
'title',
['class' => 'kartik\grid\ActionColumn'],
$gridColumns = [
['class' => 'kartik\grid\SerialColumn'],
'id',
'title',
['class' => 'kartik\grid\ActionColumn'],
];
echo ExportMenu::widget([
'dataProvider' => $dataProvider,
'columns' => $gridColumns,
'target'=>ExportMenu::TARGET_POPUP,
]);