-1
votes

"Les données données de Laravel sont invalides" lors de l'utilisation d'une demande de formulaire

J'ai donc une demande de formulaire qui a des règles de validation et certains messages.

Ceci est ma fonction dans le contrôleur (appelé via VUE.AXIOS) P>

public function authorize(): bool
{
    return $this->user()->role === 'administrator';
}

public function rules(): array
{
    return [
        'subject' => 'required',
        'date' => 'nullable|date_format:Y-m-s',
        'user' => 'nullable|exists:users,id',
        'task_list_id' => 'required|exists:task_lists,id',
        'privacy' => 'array',
    ];
}

public function messages() {
    return [
        'subject.required' => __("Task name is empty")
    ];
}


0 commentaires

3 Réponses :


0
votes

Qu'est-ce qui se passe lorsque vous vous supprimez messages () fonction?

( date_format: y-m-s semble faux, ne devrait-il pas être date_format: y-m-d ?)


3 commentaires

Ensuite, il renvoie le "nom de la tâche de base requis" ou quoi que ce soit en plus de "les données données non valides". Oui, il y avait une faute de frappe à la date :) Ce n'est pas nécessaire pour que je ne remplisse même aucune date.


Êtes-vous sûr que le __ ("nom de la tâche est vide") SI renvoie quelque chose? Votre fichier JSON de langue est-il correct?


Il fait - le système de langue de cette application est bizarre, mais cela fonctionne. Le problème est uniquement avec "Les données données sont invalides" Réponse du message JSON.



0
votes

Le validateur jette un illuminate \ validation \ validationfception code> que vous pouvez intercepter dans le app \ exceptions \ manutention-> rendu () code> avant qu'il ne soit envoyé à la classe mère Dans le vendeur.

public function failedValidation(\Illuminate\Contracts\Validation\Validator $validator)
{
    throw (new \Illuminate\Validation\ValidationException($validator))
                ->errorBag($this->errorBag)
                ->redirectTo($this->getRedirectUrl());
}


2 commentaires

Mais y a-t-il un moyen d'intercepter et d'annuler la réponse entière uniquement pour ce formerquest particulier


@Maximilianberbechelov a édité la réponse. Vous pouvez intercepter l'erreur par formequest si vous en avez besoin. Ce qui est à l'intérieur de la méthode est le résultat par défaut mis en œuvre par Laravel



1
votes

Je me débattais aussi avec le même problème. Vous obtiendriez «Les données données sont invalides» Erreur si votre code de validation est en train d'essayer Block. Supprimez-le d'essayer le bloc et vous obtiendrez une réponse d'erreur appropriée lorsque Laravel donne.


0 commentaires