鍍金池/ 問答/PHP/ Laravel 路由順序?yàn)槭裁磿?huì)影響返回內(nèi)容?

Laravel 路由順序?yàn)槭裁磿?huì)影響返回內(nèi)容?

剛學(xué)習(xí)laravel框架,發(fā)現(xiàn)路由的順序會(huì)影響發(fā)揮的內(nèi)容,這是為什么呢?
正常代碼:

Route::get('posts',function (){
    return 'index';
});

Route::get('posts/create',function (){
    return 'create';
});

Route::get('posts/{post}',function (){
    return 'post';
});

異常代碼:

Route::get('posts',function (){
    return 'index';
});

Route::get('posts/{post}',function (){
    return 'post';
});

Route::get('posts/create',function (){
    return 'create';
});

兩段代碼內(nèi)容沒有什么區(qū)別,就是路由順序有所不同。在訪問post/create路由時(shí),異常代碼會(huì)返回posts/{post}的內(nèi)容。

回答
編輯回答
涼薄

首先路由會(huì)在路由文件里進(jìn)行匹配, 如果匹配成功就會(huì)立即返回,不再往下執(zhí)行。

posts/create 滿足 posts/{post}的匹配規(guī)則,所以posts/{post}放到前面,posts/create會(huì)被命中。

2017年8月7日 08:24