我正在使用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