控制器Home
有一个方法export
:
public function export($id , $url){
...
}
在我的smarty模板中,有一个链接:<a href="/home/export/{%$id%}/{%$url%}">export</a>
。
如果网址为http://www.facebook.com,export
方法只需将 http:作为网址的值。所以我将其更改为<a href="/home/export/{%$id%}/{%$url|escape:'url'%}">export</a>
,以逃避网址中的斜杠。
然后该位置变为“ ... / home / export / 59 / http%3A%2F%2Fwww.facebook.com%2F ”(是我想要的),但是“404 Not Found”错误(不是我想要的)。
为什么?该位置不应映射到export
方法吗?以及如何使用完整网址映射到它?
答案 0 :(得分:0)
在Codeigniter控制器中,每个方法参数都来自以/
斜杠分隔的URL。对于这种工作Codeigniter通过像“URI包含不允许的聊天”错误这样的错误。
我建议您使用查询字符串来完成此任务,以避免所有这些问题:
http://example.com/export/?id=1&url=http://www.facebook.com
public function export()
{
$link = $this->input->get('url');
echo $link;
}
在Codeigniter中,您可以获得完整的网址:
$this->uri->uri_string()
public function export($id , $url){
echo $this->uri->uri_string();
}