既然已经弃用了Zend Query,那么在url中发布查询的最佳方法是什么?

时间:2014-11-25 03:24:14

标签: php mysql zend-framework zend-framework2

阅读手册似乎是分段方式是发布现在将查询发布到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]

非常感谢, 马特

1 个答案:

答案 0 :(得分:0)

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

您可以添加参数以及路径以获取/保持查询字符串值。 但是查询字符串需要使用" /"在查询字符串之间标记而不是使用"?"标记

<强> /路由名称/键=值&安培;键=值1

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

您必须使用以下语句来获取控制器中的查询字符串值 $这 - &GT; PARAMS(&#39; queryPara&#39;) 并将其传递给将在&#34;键&#34; =&gt;&#34;值&#34;中返回数组的函数。查询字符串的格式。

路由配置需要适用于您要使用查询字符串的路由。 是

'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',
                )
            ),
        ),
    )),

希望这会有用

谢谢, Lakhan Kriplani