可能通过 table_method 和 generator.yml 功能来添加和删除您已经处理过的自定义索引(即列表)操作的操作按钮。
对于其他操作,您可能希望在模型中为这些自定义查询创建其他方法。但是覆盖默认行为的地方是模块的 actions.class.php 文件。
因此,在您的示例中,您将编辑 apps/backend/modules/job/actions/actions.class.php 文件并为您需要更改的每个操作编写自定义代码。
因此,例如,您可以像这样更改删除行为:
# apps/backend/modules/job/actions/actions.class.php
require_once dirname(__FILE__).'/../lib/jobGeneratorConfiguration.class.php';
require_once dirname(__FILE__).'/../lib/jobGeneratorHelper.class.php';
class jobActions extends autoJobActions
{
/**
* Override standard delete action.
* @param sfWebRequest $request A request object
*/
public function executeDelete(sfWebRequest $request) {
if ($some_custom_condition) {
$job = Doctrine_Core::getTable('job')->find($request->getParameter('id'));
$job->delete();
$this->getUser()->setFlash('notice', 'Record deleted.');
return sfView::SUCCESS;
} else {
$this->getUser()->setFlash('error', 'You do not have permission to do that.');
return sfView::ERROR;
}
}
}