laravel5路由参数规则问题

chac
  • 6.5k

如下路由规则限制id为数字,当不是数字就报错了,怎么设置其不是数字时提示参数有误、不存在的文章、或者跳转到首页?

Route::get('article/{id}', function($id) {
    return 'Article:' . $id;
})->where('id', '[0-9]+');
回复
阅读 5.7k
2 个回答
lazyboy
  • 1.5k
✓ 已被采纳

方法1

Route::get('article/{id}', function($id) {
    if(is_numeric($id)) {
        return 'Article:' . $id;
    } else {
        return 'Index'
    }
});

方法2

Route::group(['prefix' => 'article/'], function() {
    Route::get('{id}', function($id) {
        return 'Article:' . $id;
    })->where('id', '[0-9]+');
    Route::get('{id}', function($id) {
        return 'Index:'.$id;
    });
});

建立文件resources\views\errors\404.blade.php 不存在的路由会跳转这个文件,具体处理写在这个文件

宣传栏