Frage

hatte ich den symfony Admin-Generator verwendet für Sportler Management eine Web-Anwendung zu erstellen. Ein von der Anforderung des letzten Client war ein Feature hinzufügen, um den Benutzer zu erkennen und eine E-Mail an die Administratoren zu senden, wenn ein Athlet mit der gleichen Nummer auf der Datenbank eingefügt wird. Bisher mußte die Spaltennummer der Athleten Tabelle eine eindeutige Einschränkung, aber die Client-Wünsche, dass der Athlet durch ohnehin eingefügt werden.

Um das zu erreichen, ich habe versucht, das das Bearbeiten / neue Aktionen zu erweitern, um die Anforderungen des Kunden zu implementieren.

Hier ist der 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);
    }

Hier ist mein Problem: wenn ich die Bearbeitungsaktion ausführen, ich will nur ein Duplikat Athletennummer überprüfen, wenn die HTTP-POST ist, aber es scheint, dass nie ist. Ich hatte schon einige Ausnahmen an den Ausgang gesendet, um zu überprüfen, welche Art HTTP-Anforderung ist und es scheint, es ist immer bekommen.

War es hilfreich?

Lösung

Das Problem, das Sie haben wird, ist, dass, wenn Sie speichern auf der Bearbeitungsseite schlagen die Informationen nicht auf die Bearbeitungsaktion gebucht werden, um es zu einem Update namens Aktion gebucht wird.

Haben Sie einen Blick auf die actions.class.php Datei im Cache und Sie werden es sehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top