2012-02-22 25 views
2

我是新codeigniter,我有一個問題 是否有可能有相同的Url模式訪問控制器上的2個不同的方法? 不同的是訪問這些方法是方法GET或POST就像Spring MVC的處理它是否有可能具有相同的Url模式訪問控制器上的2方法

@RequestMapping(value = "/persons/add", method = RequestMethod.GET) 
public String getAdd(Model model) 

@RequestMapping(value = "/persons/add", method = RequestMethod.POST) 
public String add(@ModelAttribute("personAttribute") Person person) 

我想是,當我訪問的URL像這樣www.bla.com/controller/AddFunction(這是GET)將被觸發的方法是「add1」方法,它將加載視圖窗體,然後我有一個「操作」控制器/ AddFunction的形式,在這個時候,因爲它是POST它會觸發「add2」方法

由於預先

回答

2

您不需要在函數調用中傳遞REST方法的名稱。控制器本身可以處理來自GET,POST或兩者的輸入。

例子:

class Persons extends Controller{ 
    function add(){ 
    //$p will contain post data. 
    $p = $this->input->post(); 
    //$g will contain get data. 
    $g = $this->input->get(); 
    //$b will contain get or post data, depending on which is submitted. 
    $b = $this->input->get_post(); 
    } 
} 

爲了進一步解釋見CodeIgniter的上The Input Class

0
class Persons extends Controller{ 
    function add(){ 
    $postArray = $this->input->post(); 
    $getArray = $this->input->get(); 

    //if something was POSTed 
    if($postArray){ 
     //do something with post array 
     return; //early return 
    } 

    //if we need to GET 
    if($getArray){ 
     //do something with get array 
     return; //early return 
    } 

    //do something down here if there were no data passed, like a default view 
    //get() and post() return false if you have no parameters sent 

    } 
} 
+0

我想是文檔,當我訪問的URL像這樣www.bla.com/controller/AddFunction(這是GET)將觸發的方法是「add1」方法,它將加載視圖的形式

然後我有一個「行動」控制器/ AddFunction的形式,在這個時候,因爲它是POST它會觸發「add2」方法 – 2012-02-22 04:14:12

+0

更新了我的回答 – Joseph 2012-02-22 04:39:36

+0

哇! 它的工作原理 感謝bro :D – 2012-02-22 05:13:25

相關問題