如何在Drupal模块中抛出404错误?

时间:2012-06-22 07:53:29

标签: drupal drupal-7 drupal-8

我需要在模块中抛出404错误。或者可能是否有可能为菜单挂钩设置所需的选项?

4 个答案:

答案 0 :(得分:22)

很容易。这些应该处理看门狗,HTTP 404响应代码和其他相关的事情。

对于Drupal 6& 7

在模块的页面回调中,执行:return drupal_not_found();

适用于Drupal 8

class::method()定义中引用的_controller(即页面回调或负责为请求生成输出的方法)中,执行:throw new NotFoundHttpException();

<强>参考

答案 1 :(得分:22)

Drupal 8

use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
// then
throw new NotFoundHttpException();

答案 2 :(得分:4)

应该在页面回调函数中返回

MENU_NOT_FOUND

  

页面回调函数想要报告未找到的&#34;页面#34;消息应该返回MENU_NOT_FOUND而不是调用drupal_not_found()。    - http://api.drupal.org/api/drupal/includes!common.inc/function/drupal_not_found/7

答案 3 :(得分:2)

查看drupal_add_http_header()函数以使用HTTP标头属性。还要确保将其粘贴在模块代码的顶部,以确保它首先执行。此外,您可能会发现这很有帮助。 https://www.drupal.org/project/generate_errors