2016-04-28 69 views
0

具有下一个路线:如何在路由时区分参数与声明的路由?

Route::get('/apartment/{apartment_name}', '[email protected]'); 

Route::get('/apartment/create', [ 
      'uses' => '[email protected]', 
      'as' => 'apartment.create' 
     ]); 

Route::get('/apartment/edit', [ 
      'uses' => '[email protected]', 
      'as' => 'apartment.edit', 
     ]); 

我如何才能让路由 myapp.com/apartment/createmyapp.com/apartment/beach-apartment之间的差异

我想通过公寓的名称搜索相同的URI前缀(公寓/),但与此代码我总是调用参数路由。

回答

1

这是因为无论被调用的是创建还是编辑,正在匹配参数之一/apartment/{apartment_name},因为createedit等于apartment_name

只需将参数1移动到该块内最低的行。

Route::get('/apartment/create', [ 
      'uses' => '[email protected]', 
      'as' => 'apartment.create' 
     ]); 

Route::get('/apartment/edit', [ 
      'uses' => '[email protected]', 
      'as' => 'apartment.edit', 
     ]); 

Route::get('/apartment/{apartment_name}', '[email protected]'); 

根据该结构,如果/apartment/create/apartment/edit不匹配,那么它将匹配/apartment/{apartment_name}