我正在将链接缩短为学校项目的一部分,
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中处理此问题的可能方法的任何想法?
答案 0 :(得分:3)
routes.php
文件中的更早或'更高'是路由,它获得的优先级越高,因此如果您定义两个相同的路由或两个匹配一个模式的路由,就像您的示例中那样,第一个将被执行。
因此,您应该先定义register
路由,因为它不应被{short_url}
覆盖。
以下是解释:路线:First in, first out
TL; DR: Laravel接收请求,并使用请求的URI查找迭代路由文件的匹配模式,当找到一个时,它break;
是循环。