除了创建节点之外,我还想允许用户上传文件,但不幸的是,我无法让它工作。
我在
nodaddlViews
中添加了下面的视图,其中包含:
echo $form
->field($node,'f_content')
->fileInput()
->label('Select File');
它可以正确显示和运行,但是当我保存文件时,它在数据库中的内容始终与“0x”相同。
我也尝试将其放入控制器的保存函数中,但我不认为它是作为代码执行的:
...
public function actionCreate($parent_id = null)
{
$model = new Folders();
if ($model->load(Yii::$app->request->post())) {
if ($parent_id !== null) {
$parent = Folders::findOne($parent_id);
if ($parent) {
$model->prependTo($parent);
}
}
$h=(binary)(file_get_contents($model->f_content));
$model->setAttribute('f_content', $h);
if ($model->save()) {
Yii::$app->session->setFlash('success', 'The record has been saved successfully.');
return $this->redirect(['view', 'id' => $model->id]);
} else {
Yii::$app->session->setFlash('error', 'An error occurred while saving.');
}
}
return $this->render(
'create', [
'model' => $model,
]
);
}
...
您缺少 UploadFile 实例。检查接线部分:https://www.yiiframework.com/doc/guide/2.0/en/input-file-upload#wiring-up