25

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

4

4 回答 4

35

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

对于 Drupal 6 和 7

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

对于 Drupal 8

在定义中class::method()提到的_controller(即页面回调或负责为请求生成输出的方法)中,执行以下操作:

throw new \Symfony\Component\HttpKernel\Exception\NotFoundHttpException();

参考

于 2012-06-22T08:59:56.527 回答
27

对于 Drupal 8

use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
// then
throw new NotFoundHttpException();
于 2016-05-07T00:36:50.357 回答
7

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

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

于 2014-11-19T03:38:46.210 回答
2

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

于 2014-11-13T02:23:40.403 回答