目录

Laravel - 路由( Routing)

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

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

  • 基本路由
  • 路线参数
  • Named Routes

基本路由

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

路线

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

例子 (Example)

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

app/Http/routes.php

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

resources/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>

路由机制如下图所示 -

路由机制

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

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

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

Step 3 - 该函数调用模板文件resources/views/welcome.blade.php. 接下来,该函数使用参数'welcome'调用view()函数,而不使用blade.php 。 这将产生HTML输出,如下图所示 -

Laravel5

路线参数

通常在应用程序中,我们打算捕获通过URL传递的参数。 为此,我们需要相应地修改routes.php文件中的代码。 我们可以通过两种方式捕获通过URL传递的参数。

您可以通过以下两种方式捕获routes.php文件中的参数 -

必需参数

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

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

可选参数

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

Route::get('user/{name?}', function ($name = '<b class="notranslate">IoWiki</b>') { return $name;});

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

命名路由

命名路由允许以方便的方式创建路由。 可以使用name方法在路由定义上指定路由的链接。 以下代码显示了使用控制器创建命名路由的示例 -

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

用户控制器将使用参数作为profile调用showProfile函数。 参数使用name方法到路由定义。

↑回到顶部↑
WIKI教程 @2018