我们在《Jsnpp框架里面带参数的路由模式》一文里面介绍过路由里面的参数怎么传递给控制器的方法,这一篇我们来介绍其他的参数怎么传递给控制器的方法。
我们在设计Jsnpp框架的时候,考虑了编程的便利性,所以Jsnpp接收和使用参数的方式是一致的,也就是说明控制器的方法里面需要使用任意参数,其使用方法是相同的。
我们先来回顾一下路由参数是怎么传到控制器方法里面的,例如有下面的路由:
http://域名/控制器/方法/参数名1/参数值1/参数名2/参数值2
那么我们根据前面学过的内容,知道应该这样获取参数和使用参数,看下面的示例:
namespace app\controller;
use jsnpp\Controller;
class Index extends Controller
{
public function index($param)
{
return $param['参数名1'];
}
}
这里假设是传递到“Index”控制器的“index”方法,这个方法带有一个“$param”参数,然后我们在方法内部就可以使用“$param['参数名']”这样的形式来获取参数的值。假设我们要获取参数1的值,那么只需要这样“$param['参数名1']”。如果要获取参数2的值,那么只需要“$param['参数名2']”这样写。
当然,我们这里的中文“参数名1”,“参数名2”之类的只是示例,实际使用中可能是这样的:
http://域名/控制器/方法/name/mike/age/20
上面这个例子,我们获取“name”的值就是这样“$param['name']”,获取“age”的值就是这样“$param['age']”。
上面我们回顾了路由参数怎么获取和使用,实际上对于其他参数的使用也是一样的,例如我们有这样的地址:
http://域名?name=mike&age=20
这是一个典型的GET请求带参数的情况,我们在控制器的方法里面接收和使用参数是一样的,如下面的代码:
namespace app\controller;
use jsnpp\Controller;
class Index extends Controller
{
public function index($param)
{
return $param['name'] . ' is ' . $param['age'];
}
}
我们在上面的代码里面演示了GET请求参数的获取,并输出了这些参数。
事实上,如果您编制了一个表单,并且通过POST方式传递到控制器的方法里面,其接收和使用参数的方法跟上面介绍的是完全一样的。也是使用“$param['name']”这样的方式来获取参数。
由上面的学习后,您会发现使用Jsnpp框架开发,对参数的处理是十分简单的,您不需要使用和区分诸如“$_GET[...]”或者“$_POST[...]”这样的代码。