Drupal admin/people/create提交后显示用户列表问题求助
解决思路:Drupal提交添加用户表单后路径异常显示问题
这种情况我之前在Drupal项目里踩过类似的坑,给你几个针对性的排查方向:
检查表单修改的代码逻辑
你提到修改了表单并添加新字段,大概率是通过hook_form_alter()或者自定义表单类实现的改动。优先排查这部分代码:- 有没有不小心设置了
$form['#redirect'] = 'admin/people';?这个参数会直接控制表单提交后的重定向目标,要是写错了就会导致跳转到用户列表,哪怕URL显示的是admin/people/create。 - 有没有在表单修改时误加了权限判断逻辑?比如在
hook_form_alter里额外校验了某个非必要的权限,导致提交后页面渲染时权限校验失败,自动 fallback 到用户列表页面。
- 有没有不小心设置了
验证提交请求的网络状态
打开浏览器开发者工具(F12)切换到Network标签,提交表单时仔细观察请求流程:- 看响应的HTTP状态码是不是3xx重定向?重定向的目标URL是不是正确的
admin/people/create? - 尝试清除Drupal缓存(用
drush cr命令或者后台admin/config/development/performance页面清除),路由缓存异常也可能导致路径匹配混乱,出现URL和页面内容不匹配的情况。
- 看响应的HTTP状态码是不是3xx重定向?重定向的目标URL是不是正确的
临时注释自定义表单代码测试
先把你添加新字段的代码临时注释掉,然后重新测试提交流程。如果提交后页面显示正常,那问题肯定出在你新增的表单代码里,再逐行排查新增字段的相关逻辑——比如有没有字段的验证逻辑抛出异常,中断了正常的表单提交流程?查看系统日志找线索
去Drupal后台的日志页面(admin/reports/dblog)看看提交表单时有没有报错、警告信息:- 有没有数据库写入错误、权限校验失败的日志?
- 有没有PHP层面的错误(比如变量未定义、函数调用失败)?这些异常可能导致表单提交流程中断,触发异常跳转。
检查表单的action属性
渲染admin/people/create页面时,查看页面源码里的表单action属性,确认它是不是正确指向admin/people/create。有时候表单修改代码可能误改了提交目标,导致表单实际提交到了admin/people路径,后续又被重定向回来,就会出现URL和内容不匹配的情况。
内容的提问来源于stack exchange,提问作者Arthur Baghdasaryan
相关产品推荐
相关产品推荐

