基本路由
Laravel最基本的路由:接收一个URI
和Closure闭包函数
,提供了定义路由的一种非常简单且富有表达力的方式
Route::get("foo", function () {
return "Hello World";
});
默认的路由配置文件
在Laravel里,所有的路由都被定义在项目中routes
目录里的配置文件中。这些配置文件在项目运行时会被框架自动加载。
所有关于web接口的路由都被定义在routes/web.php
文件里。这些路由被指派给web中间件组,这些web中间件
提供了诸如会话状态及CSRF保护等特性。在routes/api.php
中配置的路由是无状态的,并且被指派给api中间件组。
对于大多数应用来说,使用者将从在routes/web.php
中定义路由开始。在此文件中定义的路由,可以在浏览器中输入路由定义的URL
来访问。例如,你可以通过URL地址http://your-url.com/user
来访问下面定义个路由:
Route::get("/user", "UserController@index");
定义在文件routes/api.php
中的路由,会被嵌套在有app/Providers/RouteServiceProvider
提供的路由组中。
在这个路由组中,URL前缀/api
会被自动应用,所以不需要手动的去操作。但是可以通过修改app\Providers\RouteServiceProvider
文件来定义前缀以及路由组的其他选项。
可用的路由方法
Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);
有时候可能会需要注册一个路由来相应多重的http请求方式,这时可以用match
方法。或者,也可以使用any
来处理所有http请求方式。
Route::match(["get", "post"], "/", function () {
//
});
Route::any("foo", function () {
//
});
CSRF保护
任何使用POST
, PUT
, DELETE
方式提交的form表单都应该包含一个CSRF token
字段。否则,此类请求可能会被注入。
<form method="POST" action="/profile">
{{ csrf_field() }}
...
</form>
路由跳转
如果想定义一个路由跳转到其他的链接,可以使用Route::redirect
方法。
Route::redirect("/here", "/there", 301);
Route::redirect("/baidu", "https://www.baidu.com", 301);
视图路由
如果希望路由只返回一个视图,那么可以使用Route::view
处理,view
方法接收三个参数,第一个参数是一个URI,第二个参数是一个试图名,第三个参数
为可选参数,可以传递一个数组到视图文件
Route::view("/welcome", "welcome");
Route::view("/welcome", "welcome", ["name" => "Taylor"]);
结束语
初学Laravel,奈何中文资料不多。只得靠自己不入流的英语边翻译边记录,希望能一步步的了解并深入Laravel。
由于初学,所以文中暂时也没有什么个人见解......