Laravel: valider objet json
C'est la première fois que je suis à l'aide de validation dans laravel. Je suis en train d'appliquer la règle de validation ci-dessous d'objet json. L'objet json nom est la charge utile et l'exemple est donné ci-dessous.
payload = {
"name": "jason123",
"email": "[email protected]",
"password": "password",
"gender": "male",
"age": 21,
"mobile_number": "0322 8075833",
"company_name": "xyz",
"verification_status": 0,
"image_url": "image.png",
"address": "main address",
"lattitude": 0,
"longitude": 0,
"message": "my message",
"profession_id": 1,
"designation_id": 1,
"skills": [
{
"id": 1,
"custom" : "new custom1"
}
]
}
Et le code de validation est comme ci-dessous, pour des tests je suis de la validation de nom et de chiffres. Quand j'ai exécuté le code ci-dessous, l'objet json est approuvé et à insérer dans ma base de données. Au lieu de cela, il devrait me donner une exception parce que je suis de passage avec le nom alpha valeur numérique, suis-je en train de faire quelque chose de mal:
public function store(Request $request)
{
$this->validate($request, [
'name' => 'digits',
'age' => 'digits',
]);
}
- vous devez utiliser
integer
à accepter que des chiffres oualpha
pour seulement des caractères alphabétiques
Vous devez vous connecter pour publier un commentaire.
S'il vous plaît essayer cette façon
chiffres:valeur
Le champ sous validation doit être numérique et doit avoir une longueur exacte de la valeur.
Je vois certaines réponses utiles ici, je veux juste ajouter - que ma préférence est que les fonctions de commande de seulement traiter les demandes valides. Donc j'ai garder toute la validation de la demande. Laravel injecte de la demande dans le contrôleur de fonction après la validation de toutes les règles dans la demande. Avec un petit tweak (ou mieux encore un trait de caractère), la norme FormRequest fonctionne très bien pour la validation de json postes.
Client example.js
project/routes/api.php
app/Http/Requests/MyJsonRequest.php (comme généré par
php artisan make:request MyJsonRequest
)Votre charge utile doit être
payload: {
ensuite, vous pouvez faireou si vous n'êtes pas d'envoi à la charge de la clé, vous pouvez utiliser $request->tous les()
Utiliser le
Validator
usine de la classe au lieu d'utiliservalidate
méthode dérivée à partir du contrôleur de trait. Il accepte de tableau pour la charge utile, si vous avez besoin de le décoder première