如何制作带参数的网址? Laravel 5.1

时间:2015-11-29 17:15:04

标签: php laravel laravel-5.1 laravel-routing

我需要制作一个参数数量不确定的网址。所以我想进行搜索。

例如:

test.com/recipes/{category?}/{country?}/{ingredients?}/{eingredients?}

test.com/breakfast/france/ingredients/45/147/180/eingredients/2/79/205
test.com/france/eingredients/2/79/205
test.com/breakfast/ingredients/45/147/180
test.com/breakfast
成分和成分是阵列。

成分 - 包含在配方中(ids) eingredients - 从食谱(ids)中排除

我有个主意:

Route::get('/recipes/{category?}/{country?}/{ingredients?}/{eingredients?}', 'RecipeController@index')
->where(['ingredients' => '^ingredients/[0-9\/]+$', 'eingredients' => '^eingredients/[0-9\/]+$']);

但它不起作用:

test.com/france/eingredients/2/79/205

我得到第404页......

我怎么能成功?

P.S:我刚开始学习laravel。

2 个答案:

答案 0 :(得分:0)

您可以使用GET参数来满足您的需求test.com/search?country=france&category=breakfast.... 如果你想让url看起来像/country/***/那么你可以制作它们,然后在.htaccess文件中重写它们以获取参数。并且为了确保订单,在搜索网址中添加一些信息,例如:test.com/county/france/category/breakfast/****

答案 1 :(得分:0)

重复:https://stackoverflow.com/a/21526071/2420002

 Route::get('{pageLink}/{otherLinks?}', 'SiteController@getPage');

//controller 
class SiteController extends BaseController {

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

}