Heim > Artikel > PHP-Framework > Was soll ich tun, wenn ich beim Absenden eines Formulars in thinkphp keine Daten empfangen kann?
Bei der Verwendung des ThinkPHP-Frameworks zur Formularübermittlung kommt es manchmal vor, dass wir keine Formulardaten empfangen können. Diese Situation wird definitiv Verwirrung und Kopfschmerzen verursachen, insbesondere wenn unsere Anwendung Formulardaten zur weiteren Verarbeitung abrufen muss. Warum passiert das? Wie lösen wir dieses Problem? Als nächstes wird dieser Artikel sie einzeln für Sie beantworten.
Die häufigste Situation ist, dass das Formular beim Absenden nicht überprüft wird, was dazu führt, dass das Programm nicht in der Lage ist Erhalten Sie die Formulardaten. An diesem Punkt müssen wir einige einfache Validierungsvorgänge für das Formular durchführen, um sicherzustellen, dass die Daten im Formular korrekt an den Server übermittelt werden können.
Darüber hinaus gibt es die folgenden Situationen:
(1) Der Variablenname im Formular stimmt nicht mit dem Variablennamen im Aktionscontroller überein, was dazu führt, dass dies nicht möglich ist Daten abrufen;
(2) Das Methodenattribut des Formulars ist falsch, was dazu führt, dass die Formulardaten nicht abgerufen werden können; Im Formular müssen Sie $file = request( )->file('file'); verwenden, um die hochgeladene Datei abzurufen.
LösungVor dem Absenden des Formulars müssen wir das Formular validieren. Bestimmen Sie, ob die Variablen im Formular leer sind. Wenn die Variable nicht leer ist, speichern Sie den Variablenwert im Array, andernfalls ignorieren Sie die Variable. Übergeben Sie abschließend das Array als Parameter an die Methode, die das Formular verarbeitet.
Der Beispielcode lautet wie folgt:
public function dealForm(Request $request){ $data = array(); $data['var1'] = $request->param('var1'); $data['var2'] = $request->param('var2'); $data['var3'] = $request->param('var3'); $result = $this->validate($data, [ 'var1|变量名1' => 'require', 'var2|变量名2' => 'require', 'var3|变量名3' => 'require' ]); if (true !== $result) { $this->error($result); } //处理表单数据 }
(2) Überprüfen Sie den Variablennamen und das Methodenattribut
Bevor wir das Formular absenden, müssen wir dies tun Überprüfen Sie den Variablennamen und die Methode im Formular. Ob die Variablennamen im Aktionscontroller konsistent sind und ob das Methodenattribut des Formulars korrekt ist. Nur wenn der Variablenname im Formular mit dem Variablennamen im Aktionscontroller übereinstimmt und das Methodenattribut korrekt festgelegt ist, können die Formulardaten erfolgreich abgerufen werden.
(3) Datei-Upload
Wenn das Formular einen Datei-Upload enthält, müssen wir die hochgeladene Datei im angegebenen Ordner speichern und den Pfad der Datei darin speichern die Datenbank. Codebeispiel:
$file = request()->file('file'); if ($file) { $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads'); if ($info) { $data['file'] = '/uploads/' . $info->getSaveName(); } else { $this->error($file->getError()); } }Summary
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn ich beim Absenden eines Formulars in thinkphp keine Daten empfangen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!