假设我在Controller中有一个名为
的方法book($chapter,$page);
其中$ chapter和$ page必须是整数。要访问该方法,URI将类似于
book/chapter/page
例如,
book/1/1
如果用户尝试访问URI而不传递所有参数或错误的参数,例如
book/1/
或 书/ abcxyz / 1
我可以做一些if else语句来处理,比如
if(!empty($page)){
//process
}else{
//redirect
}
我的问题是,有没有最佳做法来处理用户传递的无效参数? 我的最终目标是在参数无效时重定向到主页?我怎样才能做到这一点?
答案 0 :(得分:3)
在config/routes.php
中使用CodeIgniter路由非常有用,例如:
$route['book/(:num)/(:num)'] = "book/$1/$2";
$route['book/(:any)'] = "error";
$route['book'] = "error";
应该抓住一切。您可以在路由中使用几乎任何正则表达式,因此可以验证参数是否为数字,以小写字母开头等。
答案 1 :(得分:3)