php的CI框架中_remap的怎么用
本文介绍了php的CI框架中_remap的怎么用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
是php的CI框架中的_remap对uri有什么作用,看文档看不明白,博客都是一个版本也不是很清楚,可以举个例子说明一下_remap的作用吗
解决方案
如果你的控制包含一个 _remap() 方法,那么无论 URI 中包含什么参数时都会调用该方法。 它允许你定义你自己的路由规则,重写默认的使用 URI 中的分段来决定调用哪个方法这种行为。
很简单,如果有_remap
存在,那么它始终会被调用,你如你在url
中指定的A
方法,可以在此函数中让程序实际执行B
方法。
举个例子,比如 我可以让某些方法公用一个url地址
GET /comments
列出所有评论
POST /comments
创建新评论
如果没有_remap
, 我可以在一个方法中,判断请求方式,如果是GET
执行列出评论的方法,如果是POST
就执行创建评论的逻辑。
有了_remap
就可以单独两个方法控制,比如:
public function comments($params)
{
//list comments
}
public function _comments_posts($params)
{
//此方法属于CI私有控制器方法,不能通过url直接请求,可以起到保护方法的作用
//add comments
}
public function _remap($method, $params = [])
{
if ($_SERVER["REQUEST_METHOD"] == 'GET') {
return call_user_func_array([$this, $method], $params);
} elseif ($_SERVER["REQUEST_METHOD"] == 'POST') {
return call_user_func_array([$this, '_'.$method.'_post'], $params);
}
}
当然,还有其他用途,可以按照需求具体使用。
这篇关于php的CI框架中_remap的怎么用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文