Как обновить существующую запись, когда пользователь нажимает на что-то? - PullRequest
0 голосов
/ 18 августа 2011

Я использую доктрину Symfony 1.4, и у меня возникла проблема с моим проектом. Как обновить существующую запись в Symfony?

Вот мой сценарий. В моем бэкэнд-приложении моего проекта администратор (который обрабатывает бэкэнд-приложение) может получать информацию / запись, когда пользователь отправляет свою форму бронирования в бэкэнд (мой проект - система бронирования конференц-зала). администратор уведомит его / ее по электронной почте, если его / ее запрос будет одобрен или нет, что я получил все в порядке =). Проблема в том, что я понятия не имею, так как я новичок в symfony о том, как перейти от «ожидающего запроса» (из утверждения запроса) к утвержденному, если администратор нажал на утвержденную ссылку, или наоборот, если была нажата кнопка отклонения.

У меня также есть код. Он может отправлять письма (этот код работает, за исключением обновления записи, на случай, если вы можете что-то изменить в моем коде) Кто-нибудь может мне помочь? Можете ли вы дать мне несколько советов? какой-нибудь код php или код symfony?

apps/backend/modules/reservation/actions/actions.class.php

<?php

require_once dirname(__FILE__).'/../lib/reservationGeneratorConfiguration.class.php';
require_once dirname(__FILE__).'/../lib/reservationGeneratorHelper.class.php';

class reservationActions extends autoReservationActions
{
     public function executeListApprove(sfWebRequest $request)
  {

    $reservation = $this->getRoute()->getObject();
    $reservation->approve(true);


    $mailer = $this->getMailer()->composeAndSend(
      'supervisor@teleserv.local',
      $reservation->getEmail(),
      'Request Approval',
      '
          Good Day. Hello This is Martin from the tech dept.
       We have received your request.You can now use the 
       conference room due to your requested schedule. If 
       you have questions of your approval or your request,
       Please contact me within 24 hrs. Thank you.

       Martin
       Junior Programmer
       '
      );

      $this->getUser()->setFlash('notice', 'Sent mail approval:');
      $this->redirect('reservation/index');

  }

     public function executeListDisapprove(sfWebRequest $request)
  {
    $reservation = $this->getRoute()->getObject();
    $reservation->Disapprove(true);

    $mailer = $this->getMailer()->composeAndSend(
      'supervisor@teleserv.local',
       $reservation->getEmail(),
      'Request Disapproval',
      '
          Good Day. Hello This is Martin from the tech dept.
       We have received your request.Unfortunately, We
       can\'t approve your request due: 
        1.Conflicts with the schedule. 
        2.Invalid request information.
       If you have questions of your disapproval or your
       request, Please contact me within 24 hrs. Thank you

       Martin
       Junior Programmer'
      );



      $this->getUser()->setFlash('notice', 'Sent mail disapproval:');
      $this->redirect('reservation/index');

  }  
}

1 Ответ

0 голосов
/ 18 августа 2011

Мартин!

Вы должны сохранить объект после изменений.

$reservation->save();

Совет:

  • Не смешивать слой контроллера и слой просмотра,
  • Использовать конфигурации (app_yml)

    $reservation = $this->getRoute()->getObject();
    $reservation->approve(true);
    $reservation->save();
    
    $mailer = $this->getMailer()->composeAndSend(
      sfConfig::get('app_email_sender'),
      $reservation->getEmail(),
      'Request Approval',
      $this->getPartial('email_approve_body')
    );
    
    $this->getUser()->setFlash('notice', 'Sent mail approval:');
    $this->redirect('reservation/index');
    
...