我需要制作一个参数数量不确定的网址。所以我想进行搜索。
例如:
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。答案 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
}
}
}