php - 没有对应视图的 URL
问题描述
我试图让文件上传以与现有文件相同的方式工作,所以我试图看看它是如何工作的。原始上传功能只是调用一个 URL (site.com/model/upload/model_id),然后选择的文件保存在服务器上。除此之外,它的渲染与模型视图完全相同(site.com/model/model_id)
看到这一点,我开始查看所有服务器文件。没有一个名为上传的文件,没有任何其他提及该 URL,甚至没有任何站点控制器中的内容。我发现的唯一东西是在modelController中:
public function actionUpload($id) {
$model = new Model();
$model->file = UploadedFile::getInstance($model, 'file');
if ($model->file) {
$path = 'uploads/documents/'. $id .'/';
FileHelper::createDirectory($path);
$model->file->saveAs($path . $model->file->baseName . '.' . $model->file->extension);
}
return $this->render('view', ['model' => $this->findModel($id)]);
}
这是如何运作的?我尝试使用具有不同名称的此函数的副本来复制它,但这只会给我一个找不到页面的错误。
视图中文档上传的代码是这样的:
<?php $form = ActiveForm::begin(['action' => \yii\helpers\Url::to(['upload', 'id' => $model->id]), 'options' => ['enctype' => 'multipart/form-data']]) ?>
<?= $form->field($model, 'file')->fileInput(['style' => ''])->label(false) ?>
<?= Html::submitButton('Upload', ['class' => 'btn-success']) ?>
<?php ActiveForm::end() ?>
编辑:通过向 actionUpload 函数添加布尔参数来解决。
解决方案
推荐阅读
- google-sheets - 在 Google 表格中按月求和
- c# - Excel 不愉快地显示大型 2D 范围公式数组
- javascript - 使用 sheetJS 在单个工作表中的多个表
- c++ - GNURADIO UHD 库链接器问题(C++)
- perl - 为什么 LWP::UserAgent 成功而 Mojo::UserAgent 失败?
- python - 将 Pandas 数据框写入 .txt 文件
- asp.net - Asp.net Core 2 域依赖视图选择?
- hyperledger-fabric - fabric-orderer/fabric-peer 和 fabric-ca-orderer/fabric-ca-peer 图像之间的区别
- c# - 从通用列表中删除项目不起作用
- google-apps-script - 启动错误“检索附加配置”