在 Yii2 中下载文件 PDF 时出错:未知方法



我想从frontend/web/uploads下载文件 PDF。而且我在控制器中有一个错误(也许(:

调用未知方法:frontendcontrollersBukuController::findModel()

这是我的源代码:

布库控制器.php

public function actionDownload($id)
{
    $model = $this->findModel($id);
    $file ='../frontend/uploads/'.$model->file_buku;
    if(file_exists($file))
    {
        return Yii::$app->response->sendFile($file);
        exit;
    }
}

这是视图中的功能,views/buku/index.php

<?= Html::a('Download', ['download','id'=> $buku->file_buku]); ?>

(已解决(

作为错误状态,您在名为 findModel 的 BukuController 方法中丢失了 .此方法应在数据库中搜索模型。像这样:

protected function findModel($id)
{
    if (!is_null($model = Buku::findOne($id))) {
        return $model;
    }
    throw new NotFoundHttpException('The requested page does not exist.');
}

当然如果你的模型不Buku,你需要相对改变它,并把它导入到控制器文件的顶部:

use appmodelsBuku; // Basic application.
use commonmodelsBuku; // Advanced application when models store in common folder.
use frontendmodelsBuku; // Advanced application when models store in frontend folder.

$file变量更改为此变量。

$file =Yii::$app->getBasePath().'/web/uploads/'.$model->file_buku;

最新更新