Laravel 4 route with unlimited number of parameters

后端 未结 2 1294
-上瘾入骨i
-上瘾入骨i 2021-01-02 05:19

I\'m trying to create a dynamic route for an unlimited number of URL levels.

Here\'s my current route

Route::get(\'{pageLink}\', array(\'uses\' =>         


        
相关标签:
2条回答
  • 2021-01-02 05:55

    You can try something like this:

    //routes.php
    Route::get('{pageLink}/{otherLinks?}', 'SiteController@getPage')->where('otherLinks', '(.*)');
    

    Remember to put the above on the very end (bottom) of routes.php file as it is like a 'catch all' route, so you have to have all the 'more specific' routes defined first.

    //controller 
    class SiteController extends BaseController {
    
        public function getPage($pageLink, $otherLinks = null)
        {
            if($otherLinks) 
            {
                $otherLinks = explode('/', $otherLinks);
                //do stuff 
            }
        }
    
    }
    

    This approach should let you use unlimited amount of params, so this is what you seem to need.

    0 讨论(0)
  • 2021-01-02 05:55

    @Fusion https://laravel.com/docs/5.4/routing

    You may constrain the format of your route parameters using the where method on a route instance. The where method accepts the name of the parameter and a regular expression defining how the parameter should be constrained. so {id} is a route parameter , and ->where('id', '[0-9]+') is a regex expression for this parameter. If u need to use more than parameters you can do something like this :

    Route::get('user/{id}/{id2}', function ($id) { })->where('id', '[0-9]+')->where('id2', '[[0-9]+]');
    
    
        Route::get('user/{id}', function ($id) {
    
        })->where('id', '[0-9]+');
    
    0 讨论(0)
提交回复
热议问题