Вот пример:
//routing
job:
class: sfDoctrineRouteCollection
options:
model: Job
module: job
object_actions: {copy: get, updatecopy: post}
Создать 2 действия (на основе редактирования и обновления)
class jobActions extends sfActions
{
public function executeCopy(sfWebRequest $request)
{
$this->form = new JobCopyForm($this->getRoute()->getObject());
$this->setTemplate('copy');
}
public function executeUpdatecopy(sfWebRequest $request)
{
$this->form = new JobCopyForm($this->getRoute()->getObject());
$this->processForm($request, $this->form);
$this->setTemplate('copy');
}
}
шаблон copySuccess такой же, как и editSuccess, за исключением того, что вам нужно указатьФорма для отправки данных:
<form action='<?php echo url_for('job_updatecopy', $form->getObject()) ?>' method='post'>
Создание и настройка формы, переопределение doSave
class JobCopyForm extends BaseJobForm
{
public function configure()
{
}
public function doSave($conn = null)
{
//update object values from form values
$this->updateObject();
//clone object
$job = $this->getObject()->copy();
//save a clone
$job->save();
}
}
Приветствия!