我已经以编程方式创建了一个操作,并将一个VBO添加到视图中,以便对一个或多个用户执行操作。该操作本身只删除了一些角色,并为所选用户添加了新角色。我从操作中调用user_save
来保存对角色的更改。
如果我在操作运行时查看数据库中的user_roles表,我可以看到特定用户的角色ID,实时更改为新角色。但是,当VBO完成时,它似乎恢复到原始用户对象,以便没有删除任何旧角色并且尚未添加新角色。它必须是我的行动执行后发生的事情,但我无法想象它是什么。
奇怪的是,如果我第二次运行VBO,它似乎有效。
我的操作在hook_action_info中定义为“user”类型,触发器是一个以“any”作为唯一参数的数组。
如果我直接使用actions_do
调用此操作,则第一次完美无缺。
有什么想法吗?
答案 0 :(得分:0)
我建议使用一些用户来测试VBO,并使用 dpm (devel模块)和 debug_backtrace 实现 hook_user_update 。这可能会暗示正在发生的事情,这是一种奇怪的行为,你只会发现调试。
如果您有更多信息,请将其附加到您的问题中,以便每个人都可以提供帮助。
希望有所帮助。