Enviar un correo electrónico cuando se crea un nuevo registro a través de generador de administración

StackOverflow https://stackoverflow.com/questions/3108525

Pregunta

Me había utilizado el generador de administración de Symfony para crear una aplicación web para la gestión de los atletas. Uno de los requerimientos del último cliente fue la de añadir una característica a notar el usuario y enviar un correo electrónico a los administradores cuando se inserta un atleta con el mismo número en la base de datos. Hasta ahora, el número de columna de la tabla del atleta tenía una restricción única, pero los deseos del cliente que el atleta puede por insertada de todos modos.

Para lograr eso, yo estaba tratando de extender las Edit / nuevas acciones con el fin de poner en práctica los requisitos del cliente.

Este es el código:

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);
    }

Aquí está mi problema: cuando ejecuto la acción de edición, sólo quiero comprobar para un atleta número duplicado cuando el HTTP es POST, pero parece que no lo es. Ya había enviado algunas excepciones a la salida para verificar qué tipo es el de solicitud HTTP y parece que siempre se consigue.

¿Fue útil?

Solución

El problema que va a tener es que cuando se pulse Guardar en la página de edición de la información no se contabiliza en la acción de edición, se ha publicado en una acción llamada actualización.

Para consultar el archivo actions.class.php en la caché y lo verá.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top