0
関連
マイコードは以下の通りです:Yii2。中にエラーが発生しましたアップロードファイル
モデルルール
[['documentTypeId', 'itemId', 'name', 'document'], 'required'],
[['document'], 'file', 'skipOnEmpty' => false, 'extensions' => ['png', 'jpg', 'doc', 'pdf'], 'checkExtensionByMimeType'=>false],
モデル法
public function upload($file)
{
if ($this->validate()) {
$userFolder = Yii::getAlias("@app")."/uploads/".$this->item->userId;
if(BaseFileHelper::createDirectory($userFolder) !== false) {
$fileName = uniqid(rand(), false) . '.' . $this->document->extension;
$file->saveAs($userFolder.'/' . $fileName);
$this->document = $file->name;
return true;
} else {
return false;
}
} else {
return false;
}
}
コントローラ
$model = new ItemDocument();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
$file = UploadedFile::getInstance($model, 'document');
if($model->upload($file) !== false) {
$model->save();
}
return $this->redirect(['view', 'id' => $model->id]);
}
return $this->render('create', [
'model' => $model,
]);
これにより、「文書を空白にすることはできません」という検証エラーが表示されます。 「ドキュメント」フィールドを必須ではないと設定してフォームを送信すると、「ファイルをアップロードしてください」と表示されます。
私はいくつかのフィールドを含むフォームを通じてアップロードしています。
アイデア?