How to define a Laravel route with a parameter that contains a slash character
laravel, php
Solution
Add the below catch-all route to the bottom of your `routes.php` and remember to run `composer dump-autoload` afterwards. Notice the use of "->where" that specifies the possible content of params, enabling you to use a param containing a slash.
//routes.php
Route::get('view/{slashData?}', 'ExampleController@getData')
->where('slashData', '(.*)');
And than in your controller you just handle the data as you'd normally do (like it didnt contain the slash).
//controller
class ExampleController extends BaseController {
public function getData($slashData = null)
{
if($slashData)
{
//do stuff
}
}
}
This should work for you.
Additionally, here you have detailed Laravel docs on route parameters: [ docs ]
Problem
I want to define a route with a parameter that will contain a slash `/` character like so `example.com/view/abc/02` where `abc/02` is the parameter. How can I prevent Laravel from reading the slash as a separator for the next route parameter? Because of that I'm getting a `404 not found error` now.