Zusammenhang My-Code ist der folgende:Yii2. Fehler beim Upload-Datei
Modell Regeln
[['documentTypeId', 'itemId', 'name', 'document'], 'required'],
[['document'], 'file', 'skipOnEmpty' => false, 'extensions' => ['png', 'jpg', 'doc', 'pdf'], 'checkExtensionByMimeType'=>false],
Modell Methode
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;
}
}
-Controller
$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,
]);
Dies gibt mir einen Validierungsfehler: "Dokument kann nicht leer sein". Wenn ich das Feld "Dokument" als nicht erforderlich einstelle und das Formular abschicke, bekomme ich "Bitte Datei hochladen".
Ich lade dies über ein Formular mit einigen anderen Feldern.
Irgendwelche Ideen?