处理laravel中生成的URL?

时间:2013-12-02 08:06:08

标签: php laravel laravel-4

我正在将链接缩短为学校项目的一部分,

Route::get('{short_url}', array('uses' => 'UrlController@shortUrlRedirect');

此功能可以单独使用,但因为我还有其他功能,例如

Route::post('register', array('uses' => 'HomeController@doRegister'));

每当example.com/anylink

现在使用

,它仅由一个函数处理。

我找到的工作解决方案是做类似的事情:

Route::get('url/{short_url}', array('uses' => 'UrlController@shortUrlRedirect');

但是当然有一个链接缩短器,目标是尽可能少的字符。

在laravel中处理此问题的可能方法的任何想法?

1 个答案:

答案 0 :(得分:3)

routes.php文件中的更早或'更高'是路由,它获得的优先级越高,因此如果您定义两个相同的路由或两个匹配一个模式的路由,就像您的示例中那样,第一个将被执行。

因此,您应该先定义register路由,因为它不应被{short_url}覆盖。

以下是解释:路线:First in, first out

TL; DR: Laravel接收请求,并使用请求的URI查找迭代路由文件的匹配模式,当找到一个时,它break;是循环。