0

我正在尝试在 task 生成的模块中添加一些额外的逻辑update和操作。我在这里阅读并看到我可以在. 因为调用方法然后我认为最好是覆盖它而不是但不知道如何。我需要添加的代码是这样的:deletedoctrine:generate-adminexecuteUpdate()executeDelete()/application/mymodule/actions/actions.class.phpexecuteUpdate()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() 做同样的事情还是存在更好的方法来做到这一点?有什么建议或帮助吗?

4

1 回答 1

0

您可以在管理模块操作中复制proccessForm()应用程序缓存中生成的内容以覆盖它。

于 2013-07-27T15:13:26.680 回答