Laravel框架初学一路由(基本路由)

时间:2022-01-02 14:42:26

基本路由

Laravel最基本的路由:接收一个URIClosure闭包函数
,提供了定义路由的一种非常简单且富有表达力的方式

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。
由于初学,所以文中暂时也没有什么个人见解......