2012-02-22 69 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

相关问题