本文概述
路由是Laravel中的基本概念之一。路由的主要功能是将所有应用程序请求路由到适当的控制器。
默认路由文件
所有Laravel路由都在路由目录中的路由文件中定义。创建项目时, 将在项目内部创建一个路由目录。 route / web.php目录包含Web界面的路由文件的定义。向web.php中的路由分配了Web中间件组, 该组提供了会话状态和CSRF保护等功能。在route / api.php中定义的路由是通过API中间件组分配的, 并且它们是无状态的。
我们将首先在routes / web.api文件中定义路由。可以通过在浏览器中输入定义的URL来访问路由/web.php中定义的路由。让我们通过一个例子来理解这一点。
默认路由文件的定义。
<?php
Route::get('/', function ()
{
return view ('welcome');
});
在上述情况下, Route是定义静态方法get()的类。 get()方法包含参数“ /”和function()闭包。 “ /”定义了根目录, 而function()定义了get()方法的功能。
在上述路由中, URL为“ /”;因此, 我们在网络浏览器中输入了localhost / laravelproject / public URL。
输出:
由于该方法返回view(’welcome’), 因此上面的输出显示了Laravel的欢迎视图。
让我们来看另一个例子。
现在, 我们在此示例中提供另一个URL。
<?php
Route::get('/example', function ()
{
return "Hello srcmini";
});
在上面的示例中, 定义的路由的URL为“ / example”, 因此我们需要在Web浏览器中输入URL“ localhost / laravelproject / public / example”。
输出:
CSRF保护
指向Web路由文件中定义的发布, 放置或删除路由的HTML表单应包含CSRF令牌字段。如果不包括CSRF令牌字段, 则该请求将被拒绝。
<form method="POST" action="/profile">
@csrf
...
</form>
路由器定义了可以响应以下http谓词的路由:
路线:: get($ uri, $ callback);
路线:: post($ uri, $ callback);
路线:: put($ uri, $ callback);
路线:: patch($ uri, $ callback);
路线::删除($ uri, $回调);
路线::选项($ uri, $ callback);
有时候, 当你需要注册一个响应多个http动词的路由时, 就会出现这种情况, 这可以通过使用match()方法来实现。有时你想注册一个响应所有http动词的节点, 因此我们使用any()方法。
Route::match(['get', 'post'], '/', function () {
//
});
Route::any('/', function ()
{
//
})
两种最常用的路由方法是:
- Redirect()方法Redirect()方法用于从一个URL导航到另一个URL。此方法提供了一种从一个URI移到另一个URI的便捷方法。借助这种方法, 你无需定义完整的路线。使用redirect()方法有两种方法:第一种方法是在get()方法中声明redirect()方法:
<?php
Route::get('hello', function () {
return redirect('/');
})
第二种方法是直接访问redirect()方法。
<?php
Route::redirect('hello', '/');
在上述情况下, 两条路由都从/ hello导航到根目录, 即“ /”。
- View()方法View()方法用于返回另一个URL的视图。
<?php
Route::get('/', function () {
return view('welcome');
});
<?php
Route::view('/', 'welcome');
评论前必须登录!
注册