Laravel 4.2 正则表达式路由约束,失败

Posted

技术标签:

【中文标题】Laravel 4.2 正则表达式路由约束,失败【英文标题】:Laravel 4.2 Regular Expression Route Constraints, on fail 【发布时间】:2016-11-21 04:36:32 【问题描述】:

我正在尝试在 Laravel 中创建一个使用正则表达式验证的路由,但是我想指定如果路由失败应如何处理。目前我有:

Route::group(array('prefix' => 'blog'), function() use($site) 
    Route::get('filterType/filterTerm', [ 'uses' => 'BlogController@index' ] )->where('filterType', 'author|topic');
);

但我想要这样的东西(完全虚构):

Route::group(array('prefix' => 'blog'), function() use($site) 
    Route::get('filterType/filterTerm', [ 'uses' => 'BlogController@index' ] )->where('filterType', 'author|topic')->else(function()
        // do something else
    );
);

本质上,我想处理特定于博客区域的此博客路由的验证,与站点的其他部分不同。 也许还有其他事情可以做到这一点,任何指针都会很棒。

谢谢

【问题讨论】:

【参考方案1】:

使用相反正则表达式的另一条路线

Route::group(array('prefix' => 'blog'), function()
    Route::get('filterType/filterTerm', [ 'uses' =>'BlogController@blabla' ])->where('filterType', '^(?!.*(author/|topic/)).*$');
);

【讨论】:

以上是关于Laravel 4.2 正则表达式路由约束,失败的主要内容,如果未能解决你的问题,请参考以下文章

asp.net mvc 路由约束正则表达式

C#文本框的文本,正则表达式约束,正整数和小数点后只有一位小数

如何在 Laravel 中使用正则表达式路由前缀?

Laravel 中 GET 获取路由参数

Laravel 5 路由过滤器正则表达式

Laravel - 正则表达式路由匹配所有内容,但不完全匹配一个或多个单词