首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Zend Framework2中访问路由、post、get等参数

如何在Zend Framework2中访问路由、post、get等参数
EN

Stack Overflow用户
提问于 2012-08-23 00:05:25
回答 4查看 112.7K关注 0票数 98

如何在zf2中获取与页面请求相关的各种参数?例如post/get参数、被访问的路由、发送的报头和上传的文件。

EN

回答 4

Stack Overflow用户

发布于 2014-04-10 16:24:01

例如,获取张贴的json字符串的最简单方法是读取'php://input‘的内容,然后对其进行解码。例如,我有一个简单的Zend路由:

代码语言:javascript
复制
'save-json' => array(
'type' => 'Zend\Mvc\Router\Http\Segment',
            'options' => array(
                'route'    => '/save-json/',
                'defaults' => array(
                    'controller' => 'CDB\Controller\Index',
                    'action'     => 'save-json',
                ),
            ),
        ),

我想用Angular的$http.post向它发布数据。这篇文章很好,但Zend中的检索方法

代码语言:javascript
复制
$this->params()->fromPost('paramname'); 

在这个案子里我什么都没拿到。所以我的解决方案是,在尝试了像$_POST和上面提到的其他方法之后,从“php://”中读取:

代码语言:javascript
复制
$content = file_get_contents('php://input');
print_r(json_decode($content));

我最终得到了我的json数组。希望这能有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2015-12-09 04:18:33

代码语言:javascript
复制
require_once 'lib/Zend/Loader/StandardAutoloader.php';
$loader = new Zend\Loader\StandardAutoloader(array('autoregister_zf' => true));

$loader->registerNamespace('Http\PhpEnvironment', 'lib/Zend/Http'); 

// Register with spl_autoload:
$loader->register();

$a = new Zend\Http\PhpEnvironment\Request();
print_r($a->getQuery()->get()); exit;
票数 1
EN

Stack Overflow用户

发布于 2019-02-07 16:07:51

如果您无法访问插件,例如在控制器之外,您可以从servicelocator获取参数,如下所示

代码语言:javascript
复制
//from POST
$foo = $this->serviceLocator->get('request')->getPost('foo'); 
//from GET
$foo = $this->serviceLocator->get('request')->getQuery()->foo;
//from route
$foo = $this->serviceLocator->get('application')->getMvcEvent()->getRouteMatch()->getParam('foo');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12077126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档