8
votes

Pourquoi le validateur de fichier symfony ne fonctionne pas

Je veux utiliser le validateur de fichier pour limiter les types MIME pour l'entrée de fichier. Malheureusement, cette contrainte n'est jamais utilisée et tous les fichiers ont été acceptés. XXX PRE>

Builder Formulaire: P>

/**
 * Creates a new Soldier entity.
 *
 * @Route("/create", name="soldier_create")
 * @Method("POST")
 * @Template("WNCSoldierBundle:Soldier:new.html.twig")
 */
public function createAction(Request $request)
{
    $entity  = new Soldier();
    $form = $this->createForm(new SoldierType(), $entity);
    $form->bind($request);

    if ($form->isValid()) {
        $em = $this->getDoctrine()->getManager();

        $em->persist($entity);
        $em->flush();

        return $this->redirect($this->generateUrl('soldier_show', array('id' => $entity->getId())));
    }

    return array(
        'entity' => $entity,
        'form'   => $form->createView(),
    );
}


4 commentaires

Sujet différent: Je l'ai remarqué que vous rencontrez le même problème que j'ai avec des chemins, vous voudrez peut-être vérifier cela: stackoverflow.com/questions/12168086/...


Merci, mais des travaux d'économie sans faille, mais je ne peux pas trouver une raison pour laquelle la validation ne fonctionne pas. Peut-être parce qu'il est seulement un champ virtuel non utilisé comme db colonne?


Je viens de créer une application de test qui utilise cet affirmation et cela a fonctionné bien. Les non-images ont donné une erreur et les images ont traversé. Ceci est sur symfony2.1. À quoi ressemble votre constructeur de formulaire?


@Kris pourriez-vous m'envoyer un lien vers votre application, peut-être que cela aidera. J'ai mis à jour le message afin qu'il inclue le code de formulaire.


3 Réponses :


4
votes

Consultez cette précédente Cette question suivante: Symfony2 Validation à l'aide de l'annotation d'assertion ne fonctionne pas . Vous voudrez peut-être vous assurer que vous avez satisfait à toutes les configurations recommandées pour utiliser Symfony2.

également, il n'est pas nécessaire de valider $ image avec image 'T un fichier / image. xxx

J'ai été en mesure de valider qu'un fichier téléchargé est une image à l'aide de l'alternative YAML afin que vous puissiez également essayer cela si rien ne vient up.


3 commentaires

Merci pour la réponse, unfortunatelly Vos suggestions ne résolvent pas le problème. Le lien que vous avez fourni est lié à d'autres validateur que j'utilise. Je n'ai aucun problème avec les validateurs standard comme nécessaire, non vide, etc. J'ai vérifié VichUploaderBundle et les annotations du cycle de vie supprimé, mais il ne fait pas la différence. Quelle est la version symfony utilisez-vous?


D'autre part, le fichier de validation YML a également été inefficace dans ce cas


Bonjour @lukeadamczewski, oui je suis au courant que le lien que j'ai fourni était d'un validateur différent. Ce que je pense était utile là-bas, cette réponse était en fait cette réponse Stackoverflow.com/a/7946408/1349295 concernant l'extension INTL. Assurez-vous peut-être que toutes les configurations recommandées pour SF2 sont remplies? BTW, j'ai eu ce travail sur SF2.0. J'ai porté du code de 2,1 à 2.0 et j'ai rencontré des changements importants (et change toujours). Incidemment, SF2.1 n'est plus sur la bêta! Vient de vérifier maintenant. Peut-être essayer de passer à la dernière distribution. :)



2
votes

J'ai trouvé la solution. Dans la définition de formulaire, j'utilise `'validation_groups' => tableau (" inscription "). Je pensais que lorsqu'il n'y a pas de groupe pour le validateur, il correspondra à l'un d'entre eux dans la définition de formulaire.

Lorsque j'ai ajouté des groupes de biens au validateur, tout fonctionnait enfin. Donc, par exemple, en utilisant validation.yml : xxx


0 commentaires

0
votes

Vous en utilisant des contraintes qui ne convient pas à votre domaine. Il suffit de coller avec la contrainte de fichier sur $ propriété de fichier.


0 commentaires