Question

Je l'avais utilisé le générateur admin symfony pour créer une application web pour la gestion des athlètes. L'un des derniers à l'exigence du client était d'ajouter une fonctionnalité à remarquer l'utilisateur et envoyer un e-mail aux administrateurs quand un athlète ayant le même numéro est inséré sur la base de données. Jusqu'à présent, le numéro de colonne de la table athlète avait une contrainte unique, mais les désirs du client que l'athlète peut en tout cas inséré.

Pour cela, je tentais d'étendre les Edition / nouvelles actions afin de mettre en œuvre les exigences du client.

Voici le code:

public function executeEdit(sfWebRequest $request)
    {
        $user = $this->getUser();

        if(! $user->hasCredential('admin'))
        {

            $clube_id = $user->getAttribute('id');
            $atleta_id = $request->getParameter('id');
            $atleta = Doctrine::getTable('Atleta')->find($atleta_id);

            if($clube_id != $atleta->clube_id)
                $this->forward404();        

        }

        if($request->get('post'))
        {
            // check if the inserted athlete BI already exists; if so, display a message to the user and send an email to the system admins
            $atleta_id = $request->getParameter('id');
            $atletaBIExiste = Doctrine::getTable('Atleta')->findDuplicateAthleteBI($atleta_id);

            if($atletaBIExiste)
            {
                // display a notice message to the user
                $this->getUser()->setFlash('error', 'Athlete already exists');

                // send an email to the system administrator
            }
        }


        return parent::executeEdit($request);
    }

Voici mon problème: quand j'exécute l'action d'édition, je veux seulement vérifier un numéro d'athlète en double lorsque le HTTP est POST, mais il semble que jamais est. Je l'avais déjà envoyé quelques exceptions à la sortie pour vérifier quel type est requête HTTP et il semble qu'il est toujours GET.

Était-ce utile?

La solution

Le problème que vous allez avoir est que lorsque vous cliquez sur Enregistrer sur la page Modifier les informations ne sont pas affecté à l'action d'édition, il est affecté à une action appelée mise à jour.

Avoir un regard sur le fichier actions.class.php dans le cache et vous le verrez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top