如何使用Kohana 3 Request :: factory命令发送get参数?

时间:2011-04-05 08:01:18

标签: url kohana-3 requestfactory

我有一个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参数发送到某个操作?

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

使用Request类和控制器中的query()

而不是:

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

尝试:

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