本篇讲路由 (Routes)
查看官方文档
控制路由的文件为 app/routes.php
。
我的 app/routes.php
一览:
1 |
|
接下来一个一个开始说。
Route::pattern()
Route::pattern()
是为路由里面的参数准备的,接受两个参数,第一个为变量,第二个为正则表达式,比如下面这个:
1 | Route::pattern('id', '[1-9]+'); |
这就限制了路由参数 id
只能为非零数字,并且不能为空,这样 http://example.com/tutors/detail/1/info
就可以访问,而 http://example.com/tutors/detail/a/info
就不能访问,404
。
Route::get()
Route::get()
响应 GET 请求,第一个参数为路由。
直接使用回调:
1 | Route::get('home', function() { |
调用指定模板:
1 | Route::get('home', function() { |
过滤,过滤的文档是 app/filters.php
,默认有 auth
等,autu
用于过滤未登陆请求:
1 | Route::get('home', array('before' => 'auth', function() { |
filters.php
部分代码如下(我有修改过以符合多 Auth 管理,不明白可以看你自己的 filters.php
):
1 | App::before(function($request) |
指定路由使用控制器,同时用 as
给控制器命名方便以后调用:
1 | Route::get('/', ['as' => 'home', 'uses' => 'HomeController@getHome']); |
Route::any()
响应包括 GET 和 POST 的请求。
Route::post()
响应 POST 请求,提交表单时用到,用法和 Route::get()
差不多。
Route::resource()
为 CRUD 而生,只需要指定控制器即可,该控制器建议 php artisan controller:make ControllarName
生成,因为里面的方法正是对应 CRUD 的,第三个参数可以指定只使用那些方法。
1 | Route::resource('dashboard', 'UserController', array('only' => array('index', 'edit', 'update', 'destroy'))); |
第二部分完。