Laravel:如何将某些路由参数限制为特定值?

Posted

技术标签:

【中文标题】Laravel:如何将某些路由参数限制为特定值?【英文标题】:Laravel: how to limit some route parameter to specific values? 【发布时间】:2017-11-27 17:30:15 【问题描述】:

是否可以使route 仅接受特定字符串的字符串参数?示例:

Route::get('user_tipe/event', 'admin\EventC@index');

那条路线,我想让user_tipe 参数只允许两个字符串,如adminauthor。这可能吗?

【问题讨论】:

【参考方案1】:

您可以在您的路线上使用regular expression constraits 来做到这一点:

Route::get('user_tipe/event', 'admin\EventC@index')->where('user_tipe', 'admin|author');

admin|author 是一个简单的正则表达式,它将匹配字符串adminauthor

更新

Here you can find使用Route::group时如何使用路由参数约束

【讨论】:

很好,路由的正则表达式是最好的方法 谢谢@moppo。我在Route::group(['prefix' => '/lang'], function() //Routes for en and fr goes here. )->where('lang', 'en|fr'); 上尝试了相同的方法,但我收到了这个错误Call to a member function where() on null。请问有什么办法可以解决我的担心吗?

以上是关于Laravel:如何将某些路由参数限制为特定值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 上限制特定用户的路由

Laravel 5.5登录后重定向到特定路由

如何构建需要特定 URL 查询参数的 Laravel 路由?

laravel 路由参数的默认值怎么设置

Laravel where 限制路由传递的参数id等

Laravel 路由参数和表单参数