Отправить электронное письмо при создании новой записи через генератор администратора

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

Вопрос

Я использовал генератор администратора Symfony для создания веб -приложения для управления спортсменами. Одним из требований последнего клиента было добавление функции, чтобы заметить пользователя и отправить электронное письмо администраторам, когда в базе данных вставлен спортсмен с тем же номером. До сих пор номер колонки таблицы спортсменов имел уникальное ограничение, но клиент желает, чтобы спортсмен мог в любом случае вставить.

Чтобы сделать это, я пытался расширить редактирование / новые действия, чтобы реализовать требования клиента.

Вот код:

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

Вот моя проблема: когда я выполняю действие редактирования, я хочу проверить на дубликате номера спортсмена только тогда, когда HTTP является сообщением, но кажется, что никогда не так. Я уже отправил некоторые исключения из вывода, чтобы проверить, какой тип является HTTP -запросом, и, похоже, он всегда получается.

Это было полезно?

Решение

Проблема, которую вы будете иметь в том, что когда вы нажимаете сохранение на странице редактирования, информация не размещена в действии «Редактировать», она размещается в действии, называемом обновлением.

Посмотрите на файл actions.class.php в кэше, и вы увидите его.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top