如何在laravel路由中创建排除某些slug的slug路由?

时间:2019-01-17 08:18:21

标签: php laravel routes slug

我目前正在追踪路线。

$router->get('/contact-us','HomeController@contactUs')->name('contact-us');
$router->get('/about','HomeController@about')->name('about');

现在,我想使常规页面可以按照路线访问,

$router->get('/{slug}','SomeController@about')->name('general-page');

但是主要问题是与我们联系,并且关于与子弹路径匹配的页面以及错误的控制器被称为。有什么办法可以将此类标签排除在一般页面路由之外。

1 个答案:

答案 0 :(得分:3)

您可以在路线中添加一个模式,其中排除contact-usabout这两个字词,例如:

$router->get('/{slug}','SomeController@about')
    ->where('slug', '^((?!about|contact-us).)*$')
    ->name('general-page');

有关正则表达式的说明,请参见here

通过这种方式,路由定义的顺序不会产生任何影响。