【问题标题】:Making a Zend Framework 3 MVC app return a simple string使 Zend Framework 3 MVC 应用程序返回一个简单的字符串
【发布时间】:2017-02-23 19:04:20
【问题描述】:

我有一个使用 composer create-project -sdev zendframework/skeleton-application my-application 创建的 ZF MVC 应用程序

我做了一个如下的控制器。

class SomeController extends AbstractRestfulController
{
    public function someAction()
    {
    $key =  $this->params()->fromQuery('key');
    if (empty($key)) {
        $this->response->setStatusCode(Response::STATUS_CODE_400);
        return new JsonModel([
            'status'=> 'Error',
            'messages'=> [
                'key required'
            ],
        ]);
    }
    return $this->someService->getStringByKey($key));
    }
}

我希望它返回 text/plain 的内容类型,其结果主体为 SomeService::getStringByKey($key)。相反,我得到了错误:

Zend\View\Renderer\PhpRenderer::render: 无法渲染模板“XXXXXXXXXX”;解析器无法解析到文件 `

如何让控制器操作只返回纯字符串?

【问题讨论】:

    标签: zend-framework-mvc zend-framework3


    【解决方案1】:

    嗯,你很接近:)

    class SomeController extends AbstractRestfulController
    {
        /**
         * @return \Zend\Http\PhpEnvironment\Response
         */
        public function someAction()
        {
            $string = $this->someService->getStringByKey($key));
    
            $this->response->getHeaders()->addHeaderLine('Content-Type: text/plain');
            return $this->response->setContent($string);
         }
    }
    

    【讨论】:

    • 谢谢。进行了编辑,以便设置 mime 类型。我希望有一个更清洁的解决方案,比如 RawTextStrategy,但现在就可以了。
    • 嗯,你可以检查现有的模型和策略github.com/zendframework/zend-view/tree/master/src 原始计划文本的策略可能会过度设计:) 但无论如何很有趣......
    • 我正在开发一个使用 Zend 1.10 的旧版应用程序。当我试图为 Zend 1.10 提出这个问题时,这个问题出现了,所以我会在这里发表评论,以参考我未来的自己和可能遇到这个问题的其他人,因为我无法在其他任何地方(即使在 Zend docs,它必须在某处)。在 Zend 1.10 之后添加了 $this->response 模式。在 Zend 1.10 中必须调用 $this->getResponse()。完整的例子是$this->getResponse()->setBody('something'); $this->getResponse()->sendResponse(); exit; 好吧,一些标题也必须设置在某个地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多