2011-04-05 51 views
2

我有一個Kohana 3 MVC應用程序。如何通過Kohana 3 Request :: factory命令發送參數?

在視圖中,我可以明確地調用一個控制器與該行的動作:

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

這是3.1還是3.0? – Ikke 2011-04-05 08:31:58

回答

3

3.1,你可以使用Request類的query()方法:

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

爲3.0,有沒有真正的隔離,你必須操縱$_GET陣列。從Request類和控制器

代替

0

使用查詢():

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

嘗試:

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