我有一个自定义提交处理程序,但它必须在默认处理程序更新数据库后执行,因为我的自定义处理程序必须从数据库中检索更新的数据。
如何告诉Drupal等待默认处理程序完成?我也不确定它是先执行自定义处理程序还是默认处理程序。但我尝试使用array_shift()来确保自定义处理程序最后执行。它是否同步执行处理程序?
在我的表单中,我有这个代码注册我的自定义处理程序:
$form['#submit'][] = 'my_custom_handler';
当我提交表单时,我希望在执行my_custom_handler()之前更新我的数据库(使用表单中的值),因为我的自定义处理程序必须从数据库中检索数据并且必须是更新的数据。
谢谢!
答案 0 :(得分:0)
$form['#submit']
是一个提交处理程序数组,它从头到尾执行。如果您只是添加提交处理程序,如您所述,它应该在默认值之后执行。只有当您希望处理程序在默认处理程序之前执行时,才需要array_shift()。
所以,从我在这里看到的你很好地添加处理程序。也许问题出在其他地方?