我有一个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参数发送到某个操作?
答案 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'] : '';