我正在使用Symfony 1.4/Doctrine的管理生成器。在Symfony 1.4的管理生成器中创建一个新的删除object_action
有一个问题的列表,我希望能够在他们每个人上执行自定义object_action。
我在找的是模仿_delete
对象操作,但在此之前做一些计算。
所以我创建了一个新的动作:
public function executeListDeleteAndRecalculate(sfWebrequest $request)
{
// Do the calculation
// Then delete the question
}
而且我将它添加到我的generator.yml:
object_actions:
delete_and_recalculate: ~
新的动作显示在管理发电机,但删除部分没有按没有工作。
我尝试了一堆东西,使其工作:
- 一旦所有的计算是这样做,我第一次尝试重定向到
questionActions/delete
行动。 - 我也尝试将
executeDelete
代码复制到我的新操作中。
但每次我得到的臭名昭著的
500 |内部服务器错误| sfValidatorErrorSchema _csrf_token [必需]
所以我猜的Symfony实际上是删除对象之前做一些魔法。
你知道我在想什么吗?实现deleteAndRecalculate类型的动作的最佳方式是什么?
编辑:
当然,如果我删除$request->checkCSRFProtection();
一切工作就好了。但我认为这很重要,所以我想找一个更漂亮的解决方案。
谢谢您的回答。 但是,即使我尝试复制linkToDelete创建链接的方式,我无法生成创建窗体的onclick javascript事件。而且我也无法找到它为_delete对象操作完成的地方。 关于“简单的方法”:我不认为这将工作,因为我想保持默认的“删除”行为。 – 2010-01-28 14:28:01
好的,我已经编辑了我的答案,指导如何生成链接,这有帮助吗? – 2010-01-28 14:49:24
我几乎在那里,一切似乎都没事,直到我点击链接。我不知道我在后端/ config/routing.yml中写的路线有什么问题(请参阅http://pastie.org/798862)。但是我得到一个404“Action”supprimer_et_recalculer/33“不存在。” – 2010-01-28 15:27:51