Yii2 Kartik导出未在本地主机上下载文件

Yii2 Kartik导出未在本地主机上下载文件,yii2,Yii2,我浏览了演示,阅读并应用了他们所说的一切。我的代码运行良好,到目前为止没有错误。但当我从下拉菜单中点击下载pdf时,会发生以下情况 取消阻止弹出窗口。我打开了它。 然后,一个新窗口打开,文本为“生成要导出的pdf” 但它什么也没用。它就像一个关于:空白页。我错过了什么。它可以在现场演示中完美地工作 index.php $gridColumns = [ ['class' => 'kartik\grid\SerialColumn'], 'id', 'title'

我浏览了演示,阅读并应用了他们所说的一切。我的代码运行良好,到目前为止没有错误。但当我从下拉菜单中点击下载pdf时,会发生以下情况 取消阻止弹出窗口。我打开了它。 然后,一个新窗口打开,文本为“生成要导出的pdf” 但它什么也没用。它就像一个关于:空白页。我错过了什么。它可以在现场演示中完美地工作

index.php

    $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,
]);