Я использовал генератор администратора Symfony для создания веб-приложения для управления спортсменами. Одним из последних требований клиента было добавить функцию уведомления пользователя и отправить электронное письмо администраторам, когда спортсмен с тем же номером вставлен в базу данных. До сих пор номер столбца таблицы Athlete имел уникальное ограничение, но клиент желает, чтобы он мог быть вставлен в любом случае.
Для этого я пытался расширить действия edit / new для реализации требований клиента.
Вот код:
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 - это POST, но кажется, что это не так. Я уже отправил некоторые исключения в вывод, чтобы проверить, какой тип является HTTP-запросом, и кажется, что это всегда GET.