标签:
参考:http://laravelacademy.org/post/398.html
以下代码在:laravel文件夹/app/Http/routes.php文件中更改填写
1.路由 GET 请求
格式:
Route::get(‘请求页面‘,function(){
return 返回值;
});
示例:
Route::get(‘/hello‘,function(){ return "Hello Laravel[GET]!"; });
2.路由 POST 请求
格式:
Route::post(‘请求页面‘,function(){
return 返回值;
});
示例:
Route::post(‘/hello‘,function(){
return "Hello Laravel[POST]!";
});
有一点需要注意的是,如果不post到/hello这个页面,而是直接访问,会提示:
所以,还需要构造一个路由方法来post请求到/hello这个页面,下面的代码用构造了get请求,在get返回的表单中post请求/hello页面:
Route::get(‘/testPost‘,function(){
$csrf_token = csrf_token(); //写这篇文章的时候没有明白怎么用,删除没有影响。
$form = <<<FORM
<form action="/hello" method="POST">
<input type="hidden" name="_token" value="{$csrf_token}"> //写这篇文章的时候没弄明白这有什么用,删除没有影响。
<input type="submit" value="Test"/>
</form>
FORM;
return $form;
});
当访问/testPost页面的时候,返回一个表单,只有一个Test的submit按钮,当点击Test按钮,post请求/hello页面,显示:
Hello Laravel[POST]!
3.其他请求:
match请求:允许使用多种方式请求页面,语法——Route::match([‘请求方法‘,‘请求方法‘,...,‘N‘],‘页面地址‘,回调函数);
any请求:允许所有方式请求页面,语法——Route::any(‘页面地址‘,回调方法);
4.路由参数:
这样的参数在请求时必须填写,不能为空。
语法:
Route::get(‘/hello/{参数}‘,function($name){
return "Hello {$name}!";
});
示例:
Route::get(‘/hello/{name}‘,function($name){
return "Hello {$name}!";
});
5.路由多参数:
这样的参数在请求时必须填写,不能为空。
语法:
Route::get(‘/hello/{参数1}/{参数2}‘,function($arg1,$arg2){
return "Hello {$arg1}--{$arg2}!";
});
示例:
Route::get(‘/hello/{name}--/{user}‘,function($name,$user){
return "Hello {$name} by {$user}!";
});
6.可选参数
这样的参数在请求时不是必须填写,可以为空。
语法:
Route::get(‘/hello/{参数名?}‘,function($name="默认参数"){
return "Hello {$name}!";
});
示例:
Route::get(‘/hello/{name?}‘,function($name="Laravel"){
return "Hello {$name}!";
});
7.正则约束:
所有参数类型都适用。
语法:
Route::get(‘/hello/{参数名?}‘,function($name="默认参数"){
return "Hello {$name}!";
})->where(‘参数名‘,‘正则表达式‘);
8.全局正则约束:
如果我们想要在全局范围内对参数进行条件约束,可以在RouteServiceProvider(/app/Providers/RouteServiceProvider.php)的boot方法中做如下定义:
public function boot(Router $router) { $router->pattern(‘name‘,‘[A-Za-z]+‘); //新加行 parent::boot($router); }
标签:
原文地址:http://www.cnblogs.com/archisama/p/5178732.html