使用 Zend 框架 2 未在 JSON 中呈现 404 HTTP 错误

2024-01-10

我正在使用 zend Framework2 创建一个简单的 Restful api,并且我参考了 Rob Allen 关于该主题的注释以及 http://hounddog.github.com/blog/getting-started-with-rest-and 的优秀教程-zend-framework-2/

下面是我的 module_config.php。您将看到我已配置路由和 JSON 视图策略。我的理解是,当您以这种方式设置 JSON 策略时,它会容纳所有模块。问题是,当输入无效路由时,即使 Accept 标头正在请求 Application/json,也会以 html 形式发回 404 响应。

我已经为此苦苦挣扎了两天,现在任何建议或帮助将不胜感激

对 api 的curl 调用会生成预期的 404 错误。

curl -i -H "Accept: application/json" http://myapi-dev.local/xxx/1

模块配置.php

return array(
    'controllers' => array(
        'invokables' => array(
            'Dips\Controller\Roles' => 'Dips\Controller\RolesController', //maps controller alias to a physical controller
        ),
    ),
    'router' => array(
        'routes' => array(
            'dips' => array(
                'type' => 'segment',
                'options' => array(
                  'route' => '/dips/roles/:apikey/:uname/:appname',
                  'constraints' => array(
                    'apikey' => '[a-zA-Z0-9]+',
                    'uname' => '[a-zA-Z]+',
                    'appname' => '[a-zA-Z][a-zA-Z0-9_-]*',
                 ),
                 'defaults' => array(
                     'controller' => 'Dips/Controller/Roles',
                  ),
                ),
            ),
        ),
    ),
    'view_manager' => array(
      'strategies' => array(
          'ViewJsonStrategy',
      ),
    ),
);

您需要实现额外的渲染策略并将其放在默认 404 渲染策略之上的堆栈中。或者,您可以扩展现有的 ViewJsonStrategy 以包含错误处理。

默认的 404 策略是 Zend/Mvc/View/Http/RouteNotFoundStrategy。如果您查看它的 detectorNotFoundError 方法,您可以看到它何时被触发。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Zend 框架 2 未在 JSON 中呈现 404 HTTP 错误 的相关文章

  • 如何在 Zend Framework 2 中配置学说扩展?

    我已将此行添加到我的composer json中 gedmo doctrine extensions dev master 这是在我的模块的 module config php 中 doctrine gt array driver gt a
  • 具有 varchar id 的 Doctrine2 实体不会将 id 插入数据库

    我正在尝试在 ZF2 应用程序中为 Doctrine2 创建实体 我的实体应该有 id varchar 15 但是当我尝试创建新行时 doctrine2 不会将此 ID 推送到数据库中 在实体生成的类中我有这个 Checkpoints OR
  • 如何在 ZF2 中创建表单输入/元素

    编辑 我的主要问题现在变成了 如何以某种干净的方式将带有学说实体管理器的 ServiceManager 交到我的表单 元素和输入类手中 继续阅读以查看完整的帖子 我将尝试在这里举例询问 所以请耐心等待 让我知道哪里做错 对了 或者哪里可以改
  • 为什么 DoctrineMongoORMModule 从 github 的递归子模块更新失败?

    这是我做错了什么 还是一个更广泛的错误 如果我在空目录中执行以下 git 命令 git init git submodule add https github com doctrine DoctrineMongoODMModule vend
  • ZF2如何监听特定控制器的调度事件

    如何监听特定控制器的调度事件 目前我执行以下操作 模块 php public function onBootstrap EventInterface event application event gt getApplication eve
  • Zend Framework 2 的注释命名空间未加载 DoctrineMongoODMModule

    我已经加载了 zf2 的 Doctrine MongoODM 模块 我的控制器中有文档管理器 一切都很顺利 直到我尝试保留文档 它因以下错误而失败 语义错误 SdsCore Document User 类中的注释 Document 从未导入
  • ZF2:模块无法初始化

    我正在尝试开始使用 ZF2 但在编写教程 在 ZF 网站上 中的代码时遇到问题 我的代码 Module php
  • Zend Framework 2 - 分页

    如何获取控制器操作中的页面详细信息 我使用了专辑的分页 iteratorAdapter new Zend Paginator Adapter Iterator this gt getAlbumTable gt fetchAll pagina
  • 在 ZF2 控制器中获取请求授权标头

    我正在使用 ZF2 出于某种原因 我可以获取我发送的所有标头 授权标头除外 就像它被过滤掉一样 我试图获取控制器中的所有标头 如下所示 public function createAction data request this gt re
  • 在 Zend Framework 2 中使用 Memcached 设置 ttl 和命名空间

    据我所知 这似乎是设置 Memcached 并设置 TTL 和命名空间的方法 但它们对缓存没有影响 该密钥没有命名空间前缀 并且过期时间是无限的 MemcachedOptions new Zend Cache Storage Adapter
  • ZF2 Zend\Db 使用 Mysql 表达式插入/更新(Zend\Db\Sql\Expression?)

    有没有办法通过 Zend Db 和 或 TableGateway insert update 语句在 ZF2 2 0 0beta4 的当前版本中包含像 NOW 这样的 MySQL 表达式 这是邮件列表上的相关帖子 但尚未得到答复 http
  • 在 zf2 mvc 之外使用 Zend_Db zf2 模块

    我正在编写一个不基于 zf2 mvc 的 PHP 应用程序 我确实只想使用 Zend Db zf2 模块 我如何配置我的应用程序以了解 如何在需要的地方找到 Zend Db 相关的 PHP 文件 我使用 phyrus 下载了 zf2 Zen
  • ControllerPlugin 类中的 ZF2 getServiceLocator

    我正在尝试在插件类中获取服务定位器 实体管理器 我怎样才能得到它 在我的控制器中我得到的是这样的 public function getEntityManager if null this gt em this gt em this gt
  • zf2 中的 Lucene 搜索

    Lucene Search 库是否已从 ZendFramework 2 中删除 因为我找不到它here https github com zendframework zf2 tree master library Zend UPDATE 它
  • Zend Framework 2 的多个表

    我是 Zend Framework 2 的新手 我成功完成了 ZF2 的专辑教程 现在我想仅显示数据库中多个表中的某些数据 我有一个简单的数据库设置 其中包含表格 例如人员 书籍 状态等 数据库应该做什么并不重要 我想知道是否有一个教程可以
  • 使用 ZF3 在模块引导程序中无法访问视图助手管理器

    Using Zend Framework 2我可以访问ViewHelperManager这样做 public function onBootstrap MvcEvent e viewHelperManager e gt getApplica
  • 通过 ServiceLocatorAwareInterface 注入 ServiceLocator 不起作用

    我读到实现 ServiceLocatorAwareInterface 将把 serviceLocator 注入到同一个类中 所以我得到了这个 Class MyModel implements ServiceLocatorAwareInter
  • 压缩 zend Framework 2 的 html 输出

    我目前正在 PHP 5 4 4 上使用 Zend Framework 2 beta 开发个人 web 应用程序以用于自学目的 我想知道是否可以在 html 输出发送到浏览器之前拦截它 以便通过删除所有不必要的空格来缩小它 我怎样才能在ZF2
  • ACL授权失败后ZF3重定向

    我有一个带有 ACL 的新 ZF3 应用程序 现在 我需要在未经授权的访问的情况下重定向到错误页面 例如 403 我认为最好的方法是触发一个事件 然后捕获它 但我失败了 全部都在我的用户模块中Module php 摘录 namespace
  • 如何将 ZF2 单元/应用程序模块测试合并到单个调用中?

    我遵循将测试存储在模块中的 ZF2 约定 并且当从每个模块内运行测试时一切正常 我想做的是有一个根级别的 phpunit xml 来调用各个模块测试并将它们合并以生成代码覆盖率数据和其他指标 问题是每个单独的测试套件都是在模块化 phpun

随机推荐

  • 如何在 Bash 中将文件拆分为每个块 1000 行的块? [复制]

    这个问题在这里已经有答案了 我有一个 6200 行长的文件 如下所示 chrom chromStart chromEnd score a a 1 1 chr1 834359 867552 4 0 020979021 0 0000000000
  • Django 检索 S3 存储桶中的文件列表

    我目前正在研究 django 与 S3 交互的方式 我发现 boto 库很有帮助 但有兴趣创建一个函数来返回特定存储桶内的文件列表的名称 因此我可以循环遍历并仅下载通过特定目录的文件的一部分 import boto from boto s3
  • Python 中的字符串连接与字符串替换

    在 Python 中 我不知道何时何地使用字符串连接与字符串替换 由于字符串连接在性能上有了很大的提升 这 变得更加 是一种风格决定而不是实际决定吗 举一个具体的例子 应该如何处理灵活 URI 的构造 DOMAIN http stackov
  • 如何在powershell的提升模式下执行命令集

    我尝试了以下方法在管理员模式下执行命令 PS gt start process powershell verb runas app Get AppxPackage all Where Object Name like ReleaseName
  • OpenRasta 入门 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 您好 有人可以建议开始使用 OpenRasta 的方法吗 也许是文章 教程 示例应用程序和文档 有一些博客文章 OpenRasta简介 h
  • $.post 和 $.ajax 之间的区别?

    很好奇是否有人知道数据参数有什么区别 我有一个 post方法需要一个 myform serialize 作为我的数据参数并且有效 如果我尝试使用相同的 ajax 方法 它不起作用 因为我的数据参数看起来不正确 有谁知道其中的区别以及我可以用
  • 如果这些容器属于不同的层,那么每个应用程序拥有许多 Castle Windsor 容器是否正确?

    我最近一直在玩温莎城堡 并意识到我可以用它来支持我目前已经使用的类似容器的对象 到目前为止 我只阅读了有关每个应用程序只有一个容器实例的应用程序的信息 如果这些容器属于不同的层 那么每个应用程序有许多容器是否正确 我问这个问题的原因是因为我
  • 如何根据R中行之间的日期差异过滤行?

    每个内id 我想保留至少相隔 91 天的行 在我的数据框中df below id 1有 5 行并且id 2有 1 行 For id 1 我想只保留第一 第三和第五行 这是因为如果我们比较第一个日期和第二个日期 它们相差 32 天 因此 删除
  • 将属性添加到类型而不是类型实例的隐式转换

    我正在阅读一些较旧的 Scala 帖子 以更好地理解类型类 然后我运行了 穿过this one https stackoverflow com questions 8524878 implicit conversion vs type cl
  • 在 HTML 中调用 Google Apps 脚本函数

    我担任一支运动队的教练并为其建立了一个网站 我想在管理页面添加一个按钮 单击该按钮即可快速向团队中的每个人发送电子邮件 这封电子邮件的内容如下 今天的日程安排已更改 请访问网站了解更多信息 我确信通过 Outlook 中的通讯组列表或其他东
  • Android:PhoneLookup 的目录数据提供程序

    我正在编写一个自定义 Android 联系人目录 我已经实现了 ContactsContract Directory 提供程序 并且从手机应用程序中进行搜索工作正常 我现在面临的问题是 当我有来电 去电时 Android 拨号器不会查询我注
  • 使用 pywinauto 检查复选框不起作用

    我从 pip 安装了最后一个 pywinauto 模块 我不知道如何使用 Check UnCheck GetCheckState 方法 这是我非常简单的代码示例 from pywinauto import application Start
  • 测试 numpy 数组中的每个元素是否位于两个值之间的简单方法?

    我想知道是否有一种语法上简单的方法来检查 numpy 数组中的每个元素是否位于两个数字之间 换句话说 就像numpy array 1 2 3 4 5 lt 5将返回array True True True True False 我想知道是否
  • antlr 文字字符串匹配:我做错了什么?

    我已经使用antlr 3天了 我可以解析表达式 编写侦听器 解释解析树 这是梦想成真 但后来我尝试匹配文字字符串 foo 但失败了 我可以找到很多声称可以做到这一点的例子 我都试过了 所以我创建了一个小项目来匹配文字字符串 我一定是在做一些
  • C#:如何将DLL嵌入到资源文件中(程序目录中没有DLL副本)

    我有一个需要 X dll 的 C 应用程序 项目 A 我已经将生成X dll的项目添加到A中作为Visual Studio中的参考 我还将 X dll 的发布版本作为二进制文件添加到 A 中的资源文件中 我已经告诉A项目了not将 X dl
  • 在 R 中合并列

    我想使用 R 将数据框的两列合并为一长列 下面有一个可重现的数据 data lt data frame x c 4 5 6 7 7 7 y c 3 4 5 6 7 7 data x y 1 4 3 2 5 4 3 6 5 4 7 6 5 7
  • Waypoint npm - 错误:无法解析“waypoint”

    我有一个 vue 项目并安装了 waypoints npm install waypoints 我尝试导入它 import waypoint from waypoints 但出现错误 错误 无法解析 Mypath 中的 路径点 我究竟做错了
  • 我需要服务器向所有客户端发送消息(Python、套接字)

    这是我的服务器程序 它如何将从每个客户端接收到的数据发送到每个其他客户端 import socket import os from threading import Thread import thread def listener cli
  • '#' 在 Mocha 中有特殊含义吗?

    describe indexOf it doSth 在 Mocha 中有特殊含义吗 什么是describe and it实际上呢 抱歉 没有找到相关文档describe and it describe and it遵循一种称为BDD 意思是
  • 使用 Zend 框架 2 未在 JSON 中呈现 404 HTTP 错误

    我正在使用 zend Framework2 创建一个简单的 Restful api 并且我参考了 Rob Allen 关于该主题的注释以及 http hounddog github com blog getting started with