yii2如何在pjax中使用response sendFile()

yii2如何在pjax中使用response sendFile(),yii2,response,sendfile,Yii2,Response,Sendfile,我观察到,当我执行该功能时: Yii::$app->request->sendFile()在具有gridView的行中,它不启动文件,而是将其显示在HTML中 然后,如果我删除了包围GridView的Pjax::begin()和Pjax::end()边框,然后下载works 如何在不丢失其中一项功能的情况下同时使用这两项功能?Yii2讨论了这一点。目前的解决方案是使用以下方法: <?php Pjax::begin([ 'id' => 'list', 'linkSele

我观察到,当我执行该功能时:

Yii::$app->request->sendFile()
在具有gridView的行中,它不启动文件,而是将其显示在
HTML

然后,如果我删除了包围GridView的
Pjax::begin()
Pjax::end()
边框,然后下载works


如何在不丢失其中一项功能的情况下同时使用这两项功能?

Yii2讨论了这一点。目前的解决方案是使用以下方法:

<?php Pjax::begin([
    'id' => 'list',
    'linkSelector' => '#list a:not([data-pjax=0])'
 ]); ?>
<a href="#" id="customListener" data-pjax="0">custom js or simple link to your action with download</a>
<a href="some/link">pjax link</a>
<?php Pjax::end(); ?>


看起来这项功能可能会包含在未来的版本中

您不必为
数据pjax=“0”
明确定义
linkSelector
。它已经以这种方式工作了,所以只需将其添加到链接中就足够了。