laravel 正则表达式

  1. 当路由文件中 ->where() 参数匹配模式不容易维护时,可以试试定义全局正则表达式 Pattern。

    // 我们通常这样写
    Route::get('users/{id}', 'UserController@getProfile')->where('id', '[\d+]+');
    Route::get('products/{id}', 'ProductController@getProfile')->where('id', '[\d+]+');
    Route::get('articles/{slug}', 'ArticleController@getFull')->where('slug', '[a-z0-9-]+');
    Route::get('faq/{slug}', 'FaqController@getQuestion')->where('slug', '[a-z0-9-]+');
    // 
    
    // 其实,我们可以先定义一些匹配模式,就可以多次调用,维护起来很方便:
    // 参数条件
    Route::pattern('id', '\d+');
    Route::pattern('hash', '[a-z0-9]+');
    Route::pattern('hex', '[a-f0-9]+');
    Route::pattern('uuid', '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}');
    Route::pattern('base', '[a-zA-Z0-9]+');
    Route::pattern('slug', '[a-z0-9-]+');
    Route::pattern('username', '[a-z0-9_-]{3,16}');
    // 还可以定义更多,比如邮箱、密码等。
    
    Route::get('users/{id}', 'UserController@getProfile');
    Route::get('products/{id}', 'ProductController@getProfile');
    Route::get('articles/{slug}', 'ArticleController@getFull');
    Route::get('faq/{slug}', 'FaqController@getQuestion');
    
    
    
    
    
    
    
    
    
    转:http://laravel.lapland.name/post/104120060070/routing-patterns
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值