解决这个问题的最好方法取决于你对你的“动态”路线所做的努力。
你的路由工作得很好书面,在GET或POST调用的URL http://example.com/admin/users
和http://example.com/profile
将被路由到UserController中,而任何其他的“根”级GET(如呼叫http://example.com/some_page
)将向getPage
方法途径的PageController
。从那里,你可以访问{dynamic_page}参数,并就此采取行动,但是你想:
class PageController extends BaseController {
public function getPage($dynamic_page) {
// do something here with $dynamic_page:
//
// for example, return a view based on $dynamic_page
// return View::make($dynamic_page);
//
// or retrieve a row from the database based on $dynamic_page
// $page = new Page($dynamic_page);
return ('The page is '.$dynamic_page);
}
}
据推测,在你的PageController,你需要做一些与$ dynamic_page,以确保有效的响应可用通过switch语句运行它,也许检查一个可用的View,或者查询数据库 - 否则返回一个NotFoundHttpException
。
它可能是更好地处理某些此逻辑在routes.php
- 用于例如,要求{dynamic_page}满足某些要求,一个数字ID,或许,通过添加
->where('dynamic_page', '[0-9]+');
(如乔上面所建议的)。
请注意,您设置的方式只会接受“根级”通配符;带有其他参数(例如http://example.com/some_page/something_else
)的呼叫将失败,返回NotFoundHttpException
和/或导致404错误页面。