【问题标题】:How can I sent get parameters with a Kohana 3 Request::factory command?如何使用 Kohana 3 Request::factory 命令发送获取参数?
【发布时间】:2011-07-11 12:31:35
【问题描述】:

我有一个 Kohana 3 MVC 应用程序。

在一个视图中,我可以使用这一行显式调用控制器的操作:

Request::factory('/test/deliveryaddress')->execute();

但我还想向操作发送一个参数,以便像这样处理:

public function action_deliveryaddress($region_name = NULL)
{
    $view = new View('test/deliveryaddress');
    $region_name = isset($_GET['region_name']) ? $_GET['region_name'] : '';
    $view->set('region_name', $region_name);
    $this->request->response = $view;
}

我已经尝试了这两种尝试,但它们都不起作用:

Request::factory('/test/deliveryaddress?region_name=top')->execute(); //error
Request::factory('/test/deliveryaddress', array('region_name'=>'top'))->execute(); //ignored

如何使用 Request::factory() 发送 GET 变量,或者有更好的方法将 GET 参数发送到操作?

【问题讨论】:

    标签: url kohana-3 requestfactory


    【解决方案1】:

    对于 3.1,您可以使用 Request 类的 query() 方法:

    equest::factory('/test/deliveryaddress?)->query('region_name', 'top')->execute();
    

    对于 3.0,没有真正的隔离,您必须操作 $_GET 数组。

    【讨论】:

      【解决方案2】:

      在请求类和控制器中使用 query()

      代替:

      $region_name = isset($_GET['region_name']) ? $_GET['region_name'] : '';
      

      尝试:

      $get = $this->request->query();
      $region_name = isset($get['region_name']) ? $get['region_name'] : '';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-18
        • 1970-01-01
        • 2017-03-26
        • 1970-01-01
        • 1970-01-01
        • 2022-10-20
        • 1970-01-01
        相关资源
        最近更新 更多