我想从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;