My URL is: www.foo.com/some-bar-slug-here/page
I can't get a route to catch if the string "bar" is found in the slug shown above:
Route::any('{myslug}/page/', array('as'=>'bar-page', 'uses'=>'Controllers\MyBar@index'))
->where('myslug','/bar/');
If I use the regex expression [0-9A-Za-z\\-]+
it works, but it doesn't work for /bar/
. Any ideas?
I got it working with ^([0-9A-Za-z\\-]+)?bar([0-9A-Za-z\\-]+)?
So the updated route code looks like this:
Route::any('{myslug}/page/', array('as'=>'bar-page', 'uses'=>'Controllers\MyBar@index'))
->where('myslug','^([0-9A-Za-z\-]+)?bar([0-9A-Za-z\-]+)?');
Bonus: To make it case insensitive, I do this: ^([0-9A-Za-z\\-]+)?(?i)bar([0-9A-Za-z\\-]+)?
Note: If you are using a copy of this route further down in the your routes file, but searching for a different sub-string then you will need to name your {myslug}
to something different like {myslug2}
, otherwise Laravel will not run all of the routes.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.