Скопируйте действие в Symfony 1.4 - PullRequest
0 голосов
/ 08 августа 2011

Мне также нужно создать действие копирования в Symfony.Я уже посмотрел на эти вопросы и ответы: symfony 1.4: создание действия «Копировать» .Кажется, что он работает нормально, но когда я пытаюсь сохранить сообщение об ошибке, появляется сообщение: «токен csrf: обнаружена атака CSRF».Я считаю, что это потому, что я не знаю, где изменить действие атрибута формы.

Любая помощь очень ценится!

Вот мой код:

actions.class.php:

class eventActions extends autoEventActions {

  public function executeCopy(sfWebRequest $request)
  {

    $this->form = new EventCopyForm($this->getRoute()->getObject());
    $this->event = $this->form->getObject();
    $this->setTemplate('copy');
  }

  public function executeUpdatecopy(sfWebRequest $request)
  {
    $this->form = new EventCopyForm($this->getRoute()->getObject());
    $this->processForm($request, $this->form);
    $this->setTemplate('copy');
  }
}

EvenCopyForm.class.php:

class EventCopyForm extends EventForm {

  public function doSave($conn = null)
  {
    $this->updateObject();
    $event = $this->getObject()->copy();
    $event->save();
  }  
}

copySuccess.php:

<?php use_helper('I18N', 'Date') ?>
<?php include_partial('event/assets') ?>

<div id="sf_admin_container">
  <h1><?php echo __('Copy Event', array(), 'messages') ?></h1>

  <?php include_partial('event/flashes') ?>

  <div id="sf_admin_header">
    <?php include_partial('event/form_header', array('event' => $event, 'form' => $form, 'configuration' => $configuration)) ?>
  </div>
  <div id="sf_admin_content">
    <?php include_partial('event/form', array('event' => $event, 'form' => $form, 'configuration' => $configuration, 'helper' => $helper)) ?>
  </div>
  <div id="sf_admin_footer">
    <?php include_partial('event/form_footer', array('event' => $event, 'form' => $form, 'configuration' => $configuration)) ?>
  </div>
</div>

1 Ответ

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

Я сделал это сейчас по-другому: + Я получаю объект в виде массива:

$original->toArray(false);
  • , затем снимаю идентификатор:

    unset ($ originalValues ​​['id']);

  • сделать копию объекта, который я сохраняю:

    $ copy = new Event ();$ От копирования> fromArray ($ originalValues);$ copy-> save ();

Это прекрасно работает для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...