控制器Home
有一个方法export
:
public function export($id , $url){
...
}
在我的聪明模板中,有一个链接:<a href="/home/export/{%$id%}/{%$url%}">export</a>
。如果 url 是 http://www.facebook.com,export
方法只需获取 http: 作为 url 的值。所以我把它改成<a href="/home/export/{%$id%}/{%$url|escape:'url'%}">export</a>
,以转义url中的斜杠。
然后位置变成".../home/export/59/http%3A%2F%2Fwww.facebook.com%2F"(是我想要的),但带有"404 Not Found"错误(不是我想要的)。
为什么?位置不应该映射到export
方法吗?以及如何使用完整的 url 映射到它?
在 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();
}