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 }
4 Réponses :
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:
Extrait pour votre référence:
$address = $request->input('address'); if(empty($address)){ return response()->json(['message' => 'no data','success' => 0]); }
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.
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' ])
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); }
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); } } }
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?