鍍金池/ 問答/PHP/ Laravel 路由順序為什么會影響返回內(nèi)容?

Laravel 路由順序為什么會影響返回內(nèi)容?

剛學習laravel框架,發(fā)現(xiàn)路由的順序會影響發(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路由時,異常代碼會返回posts/{post}的內(nèi)容。

回答
編輯回答
涼薄

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

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

2017年8月7日 08:24