Php 既然Zend查询已被弃用,那么发布查询的最佳方式是什么';url中有什么?

Php 既然Zend查询已被弃用,那么发布查询的最佳方式是什么';url中有什么?,php,mysql,zend-framework,zend-framework2,Php,Mysql,Zend Framework,Zend Framework2,在阅读手册时,segmant方式似乎是现在将查询发布到url的最佳方式(多字段sql查询)。有没有人能给我举个例子?还是链接?当我在模块配置中使用查询选项时,我得到以下消息。但是找不到关于新方法的任何信息 Query route deprecated as of ZF 2.1.4; use the "query" option of the HTTP router's assembling method instead 控制器或视图中是否显示以下内容?模块配置是否如下所示 'route'

在阅读手册时,segmant方式似乎是现在将查询发布到url的最佳方式(多字段sql查询)。有没有人能给我举个例子?还是链接?当我在模块配置中使用查询选项时,我得到以下消息。但是找不到关于新方法的任何信息

 Query route deprecated as of ZF 2.1.4; use the "query" option of the HTTP router's assembling method instead 
控制器或视图中是否显示以下内容?模块配置是否如下所示

'route' => 'foo[/:page][/:sort]'
下面是我发现的一个例子

  $url = $router->assemble(array(
        'name' => 'foo',
    ), array(
        'query' => array(
            'page' => 3,
            'sort' => 'DESC',
        ), 
        // or: 'query' => 'page=3&sort=DESC'
    ));

    // via URL helper/plugin:
    $rendererOrController->url('foo', array(), array('query' => $request->getQuery()));
我的观点:

$form->setAttribute('action', $this->url(
 'home/results',
 array(
     'action' => 'results',
     'search_zip'=> '$this->search_zip',
模块配置

'route' => 'results[/:search_zip]
非常感谢,,
Matt

由于不推荐使用查询字符串,我们可以使用其他方法来使用查询字符串

您可以在路由中添加参数以获取/保留查询字符串值。 但是需要在和查询字符串之间使用“/”标记传递查询字符串,而不是使用“?”标记

/route name/key=value&key=value1

您必须创建从查询字符串中提取键和值并返回数组的函数,您可以在公共文件中添加该函数,以便在整个项目中需要时可以从任何控制器调用该函数

您必须使用以下语句来获取控制器中的查询字符串值 $this->params('queryPara') 并将其传递给函数,该函数将以查询字符串的“key”=>“value”格式返回数组

路由配置需要针对要使用查询字符串的路由。 是

“路由器”=>阵列(
“路由”=>数组(
''=>数组(
'类型'=>'段',
“选项”=>数组(
“路由”=>“[/:action][/:queryPara][/]”,
'约束'=>数组(
“行动”=>“[a-zA-Z][a-zA-Z0-9_u-]*”,
“queryPara'=>”[a-zA-Z][a-zA-Z0-9-&=]*”,
),
“默认值”=>数组(
“控制器”=>“应用程序\控制器\索引”,
“操作”=>“索引”,
)
),
),
)),
希望这将是有用的

谢谢,
拉坎·克里普朗尼

我仍然有麻烦。目前,我正在尝试使用表单上的setAttributes在我的视图中发布。我已经更新了上面的代码。感谢您的时间和专业知识。您能否指定您在视图中使用的代码以及setAttributes
'router' => array(
    'routes' => array(
        '<route-name>' => array(
            'type' => 'segment',
            'options' => array(
                'route' => '<route-name>[/:action][/:queryPara][/]',
                'constraints' => array(
                    'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                    'queryPara' => '[a-zA-Z][a-zA-Z0-9_-&=]*',
                ),
                'defaults' => array(
                    'controller' => 'Application\Controller\Index',
                    'action' => 'index',
                )
            ),
        ),
    )),