我想知道是否有办法指定静态路由,以及动态查找根级别页面网址的方法,类似下面的内容将在我的routes.php文件中
Route::get('admin/users', array('before' => 'isAdmin', 'uses' => 'UserController@userAdministration'));
Route::post('admin/users', array('before' => 'isAdmin', 'uses' => 'UserController@userList'));
Route::post('profile', 'UserController@profile');
Route::get('{dynamic_page}','PageController@getPage');
我该如何设置?
答案 0 :(得分:1)
我也不清楚你在问什么。但是动态路由的示例如下(注意param customer_id以及如何使用它):
Route::get('{customer_id}/profile', 'CustomerController@getProfile')->where('customer_id', '[0-9]+');
根网址路线可能如下所示:
Route::get('/', array('as' => 'root', 'uses' => 'RootController@showRoot'));
同样,我并不完全确定你动态查找根网址的含义。
答案 1 :(得分:1)
解决这个问题的最佳方法取决于您正在尝试使用"动态"路由。
您的路由工作正常,因为对网址http://example.com/admin/users
和http://example.com/profile
的GET或POST调用将路由到UserController,而其他任何" root"级别GET(例如,呼叫http://example.com/some_page
)将路由到getPage
的{{1}}方法。从那里,您可以访问{dynamic_page}参数,并按照您的意愿对其执行操作:
PageController
据推测,在你的PageController中,你需要用$ dynamic_page做一些事情以确保有效的响应可用 - 通过switch语句运行它,或许,检查可用的View,或查询数据库 - 否则返回一个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);
}
}
。
在NotFoundHttpException
处理一些逻辑可能会更好 - 例如,要求{dynamic_page}满足某些要求 - 可能是通过添加
routes.php
(正如Joel上面所说)。
另请注意,您设置它的方式只接受" root-level"通配符;使用其他参数(例如->where('dynamic_page', '[0-9]+');
)的调用将失败,返回http://example.com/some_page/something_else
和/或导致404错误页面。