在laravel中具有相同数量的参数的多个路线

时间:2015-06-10 06:04:04

标签: php laravel

我的客户想在网站上找到两个网址:

Subjects

1000  English
2000  Maths
3000  Science

Student

100  #10,Madison Rd.

Marks

1  100  1000 90
2  100  2000 76
3  100  3000 80

如何为这两个网址编码两条路线?第一个列出一个城市的项目,第二个列出一个州的项目。

a) www.example.com/{cityname}-items.html 
b) www.example.com/{statename}-items.html

当我这样做的时候?只有第一条路线有效,因为两者都有相同数量的参数,客户希望这样做而不更新网址

2 个答案:

答案 0 :(得分:1)

基本上:你不能。在点击例如

时,你的系统无法找到它
www.example.com/whashington-items.html

如果你试图击中whashington市的whashington州。

您应该考虑拆分逻辑:

www.example.com/city/{name}-items.html
www.example.com/state/{name}-items.html

2“端点”(或某种类型),我觉得这听起来更好。

答案 1 :(得分:0)

请试试这个:

Route::get('{cityOrState}-items.html', function($cityOrState){
    $city = City::find($cityOrState);

    if(is_null($city))
    {
        return App::make('CityController')->searchState($cityOrState);
    }

    return App::make('CityController')->searchCity($cityOrState);
});