1
votes

Comment vérifier l'entrée utilisateur dans laravel

J'ai une entrée de colonne nommée Address, et comment vérifier, si une entrée utilisateur comme null, 'null' et '', la réponse de retour sera une erreur. Je l'ai fait, mais cela ne fonctionne pas.

Voici mon code:

      $address = $request->input('address');
        if ($address == null) 
        {
            return response()->json(['message'=>'no data','success'=>0]);
        }
        elseif($address == '')
        {
            return response()->json(['message'=>'no data','success'=>0]);
        }
        elseif($address == 'null')
        {
            return response()->json(['message'=>'no data','success'=>0]);
        }
        else 
         //process
        }


3 commentaires

Ne fonctionne pas Exactement comment cela ne fonctionne pas? Ce n'est pas vraiment une très bonne description d'un problème


@RiggsFolly lorsque j'essaie de mettre null dans l'entrée d'adresse, sinon le processus s'exécutera, c'est la même chose pour `` null ''


Comment mettez-vous exactement "null" dans cette entrée? Êtes-vous sûr que le code donné est vraiment exécuté? Qu'avez-vous essayé de déboguer le problème?


4 Réponses :


1
votes

Vous pouvez utiliser la fonction vide , qui renverrait FALSE si var existe et a une valeur non vide et non nulle. Sinon, renvoie VRAI. Cela implique les conditions suivantes considérées comme vides:

  • "" (une chaîne vide)
  • 0 (0 sous forme d'entier)
  • 0,0 (0 en tant que flottant)
  • "0" (0 sous forme de chaîne)
  • NULL
  • FAUX
  • array () (un tableau vide)

Extrait pour votre référence:

$address = $request->input('address');
if(empty($address)){
    return response()->json(['message' => 'no data','success' => 0]);
}


4 commentaires

Pourquoi devrait-on essayer ça? Veuillez ajouter quelques explications à ce code afin que d'autres puissent en tirer des leçons


empty renverrait FALSE si la variable existe et a une valeur non vide et non nulle. Sinon, retourne TRUE, php.net/manual/en/function.empty.php


Veuillez ajouter toutes ces informations à la réponse, pas à la section des commentaires


@NicoHaase Merci pour votre suggestion, cela aide vraiment le monde à apprendre les choses autour. En espérant que j'ai pu expliquer ma réponse.



6
votes

Vérifiez la validation laravel: ici .

Par exemple:

  if(!$request->filled('address')){
    return response()->json(['message'=>'no data','success'=>0]);
  }

Si vous voulez vérifier si l'entrée est remplie, vous pouvez le faire:

$request->filled('address')

Vérifiez docs pour récupérer les entrées.

dans votre cas:

$request->validate([
     'address' => 'required'
])


0 commentaires

1
votes

Utilisez la validation laravel, pour plus d'informations, consultez la documentation laravel lien

$validator = Validator::make($request->all(), [
    'address' => 'required'
]);
if ($validator->fails()) {
    return response()->json(['error' => $validator->errors()->first()], 422);
}


0 commentaires

0
votes

utiliser les façades de validation: https://laravel.com/docs/5.7/validation

use Illuminate\Support\Facades\Validator;

public function MyFunction(Request $request){
  try {
            $validator = Validator::make($request->all(), [
                    'address' => 'required',
                ]
            );

            if ($validator->fails()) {
                $response=array('status'=>'error','errors'=>implode(',', $validator->errors()->all()));
                return response()->json($response, 400);
            }else{

                  // validation success                   

            }

 } catch (\Exception $e) {
            $response=array('status'=>'error','result'=>0,'errors'=>'Internal Server Error');
            return response()->json($response, 500);
        }
    }
}


0 commentaires