Maison >cadre php >PensezPHP >Que dois-je faire si je ne peux pas recevoir de données lors de la soumission d'un formulaire dans thinkphp ?

Que dois-je faire si je ne peux pas recevoir de données lors de la soumission d'un formulaire dans thinkphp ?

PHPz
PHPzoriginal
2023-04-11 09:13:31755parcourir

Lorsque nous utilisons le framework ThinkPHP pour la soumission de formulaires, nous rencontrons parfois des situations dans lesquelles les données du formulaire ne peuvent pas être reçues. Cette situation provoquera certainement de la confusion et des maux de tête, en particulier lorsque notre application doit obtenir des données de formulaire pour un traitement ultérieur. Alors pourquoi cela arrive-t-il ? Comment pouvons-nous résoudre ce problème ? Ensuite, cet article y répondra un par un pour vous.

  1. Cause

La situation la plus courante est que lorsque le formulaire est soumis, le formulaire n'est pas vérifié, ce qui empêche le programme d'obtenir les données du formulaire. À ce stade, nous devons effectuer quelques opérations de validation simples sur le formulaire pour garantir que les données du formulaire peuvent être soumises correctement au serveur.

De plus, il existe les situations suivantes :

(1) Le nom de la variable dans le formulaire est incohérent avec le nom de la variable dans le contrôleur d'action, ce qui entraîne l'impossibilité d'obtenir des données ;

(2) L'attribut de méthode de ; le formulaire est incorrect, par conséquent, les données du formulaire ne peuvent pas être obtenues ;

(3) S'il y a un téléchargement de fichier dans le formulaire, vous devez utiliser $file = request()->file('file') ; pour obtenir le fichier téléchargé.

  1. Solution

(1) Vérifiez le formulaire

Avant de soumettre le formulaire, nous devons vérifier le formulaire pour déterminer si les variables du formulaire sont vides. Si la variable n'est pas vide, stockez la valeur de la variable dans le tableau, sinon ignorez la variable. Enfin, transmettez le tableau en paramètre à la méthode qui traite le formulaire.

L'exemple de code est le suivant :

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) Vérifiez le nom de la variable et l'attribut de la méthode

Avant de soumettre le formulaire, nous devons vérifier si le nom de la variable dans le formulaire est cohérent avec le nom de la variable dans le contrôleur d'action. , et si l'attribut méthode du formulaire est correct. Ce n'est que lorsque le nom de la variable dans le formulaire est cohérent avec le nom de la variable dans le contrôleur d'action et que l'attribut de la méthode est correctement défini que les données du formulaire peuvent être obtenues avec succès.

(3) Téléchargement de fichier

S'il y a un téléchargement de fichier dans le formulaire, nous devons stocker le fichier téléchargé dans le dossier spécifié et enregistrer le chemin du fichier dans la base de données. Exemple de code :

$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());
    }
}
  1. Summary

Avec la méthode ci-dessus, nous pouvons facilement résoudre le problème de l'impossibilité d'obtenir les données du formulaire. Il est important de noter qu'avant de soumettre le formulaire, nous devons vérifier le formulaire pour nous assurer que les données du formulaire peuvent être correctement soumises au serveur. Dans les projets réels, nous pouvons également utiliser la technologie Ajax pour mettre en œuvre la soumission et la vérification de formulaires, améliorant ainsi l'expérience utilisateur et les performances du site Web.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn