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');
});

资源/视图/ 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

路线参数

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

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

必需的参数

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

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

可选参数

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

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

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

命名路线

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

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

用户控制器将调用 showProfile 参数作为 配置文件 。参数在路由定义上使用 名称 方法。