2013-09-21 25 views
1

控制器Home有一個方法export傳遞逃脫URL作爲控制器參數笨

public function export($id , $url){ 
    ... 
} 

在我的Smarty的模板中,有一個環節:<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>,以便在網址中跳過斜槓。

則該位置成爲 「... /家庭/導出/ 59/HTTP%3A%2F%2Fwww.facebook.com%2F」(是我想要什麼),但與「404未找到」錯誤(不是我想要的)。

這是爲什麼?該位置不應映射到export方法?以及如何使用完整的網址映射到它?

回答

0

在Codeigniter控制器中,每個方法參數來自用/斜線分隔的URL。對於這種工作Codeigniter通過錯誤,如「該URI包含不允許的chatacters」錯誤。 我建議你使用查詢字符串此任務,以避免所有這些問題:

http://example.com/export/?id=1&url=http://www.facebook.com

public function export() 
{ 
    $link = $this->input->get('url'); 
    echo $link; 
} 

CI中你可以得到完整的URL:

$this->uri->uri_string() 


public function export($id , $url){ 
    echo $this->uri->uri_string(); 
}