是否可以使用相同的Url模式访问控制器上的2方法


Is it possible to have same Url pattern to access 2 method on Controller

我是codeigniter的新手,有个问题是否可以使用相同的Url模式访问Controller上的两个不同方法?区别在于访问这些方法的方法是GET或POST,就像Spring MVC处理一样

@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)

我想要的是,当我访问www.bla.com/controller/AddFunction这样的url时(这是GET),将触发的方法是"add1"方法,它将加载视图表单,然后我有一个对controller/Add Function有"操作"的表单,此时因为是POST,它将触发"add2"方法

事先感谢

您不需要在函数调用中传递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关于输入类的文档

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
  }
}