我们在《全链入口的访问类型检测》一文里面介绍了怎么检测访问类型,这一篇将进一步来介绍怎么检测参数。
在实际应用中,我们经常会对表单提交的数据进行一些检查,例如是否有值,值是否正确的类型等。在实际的编程中,您也许会觉得检查这些十分的麻烦。
使用Jsnpp框架为您带来了简单的处理方法,下面我们就来看一下怎么实现对参数的检查。
我们先以《Jsnpp框架全链概述》一文里面用过的那个例子来说明,这个例子的代码如下:
namespace app\controller;
use jsnpp\Controller;
class Index extends Controller
{
public function index()
{
$this->view->assign('webroot', $this->route->rootUrl())->display();
}
public function views($param)
{
$this->app->entrance->check('post')->check($param['id'], 'require', 'ID缺失')->db->table('posts')->where('id', $param['id'])->data('views', 'views+1')->update()->output->display(':ok')->finish();
}
}
很显然,这是一个比较完整的代码,我们只需要看“views”方法,也就是标红的这个方法。这个方法里面也有一个全链段被标红了,我们把这个代码单独提取出来进行说明:
...->check($param['id'], 'require', 'ID缺失')...
我们看到,上面代码也是在入口“entrance”里面进行的“check”检查,我们已经看到了“check”检查是可以连续写的,红标的“check”检查是在前面检查访问类型的check之后的。
我们来解释一下“views”方法,这个方法有一个参数“$param”,这个参数是用于传递参数的,他实际上是一个数组,数组的每一项就是一个实际的参数,我们这里的示例里面“id”就是传进来的一个参数。参数“id”,我们可以使用“$param['id']”这样的方法来获得。
“$param['id']”作为“check”的第一个参数,“check”的第二个参数是一个字符串“require”,这个字符串表示“check”的第一个参数的值是必须的,也就是不能为空值。“check”的第三个参数也是一个字符串“ID缺失”,这个参数的作用是假设参数为空,没有通过检测,那么输出的提示信息是“ID缺失”,当然您可以任意修改提示信息。
这里仅仅是示例了一个参数的检查,有多个参数的情况也是一样的,我们只需要连续写检查代码就可以了。例如下面的示例代码:
...->check($param['id'], 'require', 'ID缺失')->check($param['name'], 'require', '名称必须要填')...有多少参数需要检查就写多少check代码即可。