Laravel - 路由


在 Laravel 中,所有请求都在路由的帮助下进行映射。基本路由将请求路由到关联的控制器。本章讨论 Laravel 中的路由。

Laravel 中的路由包括以下类别 -

  • 基本路由
  • 路由参数
  • 命名路线

基本路由

所有应用程序路由都在app/routes.php文件中注册。该文件告诉 Laravel 它应该响应的 URI,并且关联的控制器将给它一个特定的调用。欢迎页面的示例路由如下面的屏幕截图所示 -

路线

Route::get ('/', function () {
   return view('welcome');});

例子

观察以下示例以了解有关路由的更多信息 -

应用程序/Http/routes.php

<?php
Route::get('/', function () {
   return view('welcome');
});

资源/view/welcome.blade.php

<!DOCTYPE html>
<html>
   <head>
      <title>Laravel</title>
      <link href = "https://fonts.googleapis.com/css?family=Lato:100" rel = "stylesheet" 
         type = "text/css">
      
      <style>
         html, body {
            height: 100%;
         }
         body {
            margin: 0;
            padding: 0;
            width: 100%;
            display: table;
            font-weight: 100;
            font-family: 'Lato';
         }
         .container {
            text-align: center;
            display: table-cell;
            vertical-align: middle;
         }
         .content {
            text-align: center;
            display: inline-block;
         }
         .title {
            font-size: 96px;
         }
      </style>
   </head>
   
   <body>
      <div class = "container">
         
         <div class = "content">
            <div class = "title">Laravel 5.1</div>
         </div>
			
      </div>
   </body>
</html>

路由机制如下图所示 -

路由机制

现在让我们详细了解路由机制涉及的步骤 -

步骤 1 - 最初,我们应该执行应用程序的根 URL。

步骤2 - 现在,执行的URL应该与route.php文件中的适当方法匹配。在本例中,它应该与方法和根 ('/') URL 匹配。这将执行相关功能。

步骤 3 - 该函数调用模板文件resources/views/welcome.blade.php。接下来,该函数使用参数“welcome”调用view()函数,而不使用blade.php

这将产生 HTML 输出,如下图所示 -

Laravel5

路由参数

有时在Web应用程序中,您可能需要捕获随URL传递的参数。为此,您应该修改routes.php文件中的代码。

您可以通过两种方式捕获paths.php文件中的参数,如下所述 -

所需参数

这些参数是为路由 Web 应用程序而必须强制捕获的参数。例如,从 URL 中捕获用户的标识号非常重要。这可以通过定义路由参数来实现,如下所示 -

Route::get('ID/{id}',function($id) {
   echo 'ID: '.$id;
});

可选参数

有时开发人员可以生成可选参数,并且可以包含? URL 中的参数名称之后。保留作为参数名称提到的默认值非常重要。看下面的示例,它展示了如何定义可选参数 -

Route::get('user/{name?}', function ($name = 'TutorialsPoint') { return $name;});

上面的示例检查该值是否与TutorialsPoint匹配,并相应地路由到定义的URL。

命名路线

命名路由提供了一种创建路由的便捷方法。可以使用路由定义上的名称方法来指定路由链接。以下代码显示了使用控制器创建命名路由的示例 -

Route::get('user/profile', 'UserController@showProfile')->name('profile');

用户控制器将调用函数showProfile,参数为profile。参数使用名称方法定义路由。