我正在尝试在任务update
生成的模块中为delete
和doctrine:generate-admin
操作添加一些额外的逻辑。我看了here,看到我可以在executeUpdate()
中创建executeDelete()
和/application/mymodule/actions/actions.class.php
方法。由于executeUpdate()
调用proccessForm()
方法,我认为最好是覆盖此而不是executeUpdate()
,但不知道如何。我需要添加的代码是:
$q = Doctrine_Core::getTable('SdrivingEmpresa')
->createQuery('a')
->where('idempresa = ?', $request->getParameter('idempresa'))
->execute();
$file = new sfFilesystem();
$file->remove(sfConfig::get('sf_upload_dir') . '/' . $q[0]->getLogotipo());
我是为executeDelete()
做的,通过复制生成的缓存编码并编写我的逻辑,见下文:
public function executeDelete(sfWebRequest $request) {
$request->checkCSRFProtection();
$this->dispatcher->notify(new sfEvent($this, 'admin.delete_object', array('object' => $this->getRoute()->getObject())));
$q = Doctrine_Core::getTable('SdrivingEmpresa')
->createQuery('a')
->where('idempresa = ?', $request->getParameter('idempresa'))
->execute();
$file = new sfFilesystem();
$file->remove(sfConfig::get('sf_upload_dir') . '/' . $q[0]->getLogotipo());
if ($this->getRoute()->getObject()->delete()) {
$this->getUser()->setFlash('notice', 'The item was deleted successfully.');
}
$this->redirect('@sdriving_empresa');
}
但我认为这是不对的,所以我的问题是,我应该对processForm()做同样的事情还是存在更好的方法来做到这一点?任何建议或帮助?
答案 0 :(得分:0)
您可以复制管理模块操作中应用程序缓存中生成的proccessForm()
以覆盖它。