在Laravel 4 Route中传递一个url作为param

时间:2015-07-21 20:44:30

标签: laravel routes

我想传递一个网址作为我的路线的一部分: 即

  

http://example.com/param1/url_param

  

http://example.com/param1/?url_param=http://example1.com/56474

Route::get('/{param1}/{url_param?}', function($param1, $url_param){}); 

我在Ubuntu,nginx,Laravel 4。

1 个答案:

答案 0 :(得分:0)

如果不通过参数对其进行编码,则不应传递该URL。此外,您不能像第一个示例中那样传递它(将其作为URL的一部分附加),因为您在URL(' /')中有段定界符char来定义协议。

第二个例子是正确的,尽管我建议你使用url_encode()对URL进行编码。

另一种方法是使用B64对URL进行编码,生成一个可以作为URL段附加的字符串。类似的东西:

$URLToBeAppended = base64_encode( 'http://example1.com/564740' );

现在最后的路线看起来像是:

  

http://example.com/param1/aHR0cDovL2V4YW1wbGUxLmNvbS81NjQ3NDA=

在负责处理该路由的控制器中,您只需解码该B64字符串。