我可以成功上传文件并尝试将其路径保存到数据库中。但没有保存路径。这是我的代码的一部分。
在我的ItemsController中:
public function actionCreate()
{
$model = new Items();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
$imageName = $model->item_name;
$model->file = UploadedFile::getInstance($model,'file');
$model->file->saveAs('uploads/'.$imageName.'.'.$model->file->extension);
$model->item_pathname = 'uploads/'.$imageName.'.'.$model->file->extension;
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
我可以将文件成功保存在uploads文件夹中,并成功将其更改为item_name。但我无法将其保存到我的数据库image_pathname列中。我怎样才能做到这一点?感谢。
我见过一个例子,您可以使用$models->sample_data = '';
直接将数据输入数据库。我不知道为什么我的工作不起作用。
答案 0 :(得分:0)
您需要在item_pathname
更改后保存模型。
$model->item_pathname = ...;
$model->save();
正确的代码是
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
$imageName = $model->item_name;
$model->file = UploadedFile::getInstance($model,'file');
$model->file->saveAs('uploads/'.$imageName.'.'.$model->file->extension);
$model->item_pathname = 'uploads/'.$imageName.'.'.$model->file->extension;
$model->save();
...
}
首先验证,然后更改路径并保存。