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输出,如下图所示 - **
路线参数
通常在应用程序中,我们打算捕获通过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 参数作为 配置文件 。参数在路由定义上使用 名称 方法。
下一章:Laravel 中间件
中间件充当请求和响应之间的桥梁。这是一种过滤机制。本章向您解释Laravel中的中间件机制。Laravel包含一个中间件,用于验证应用程序的用户是否已通过身份验证。如果用户通过身份验证,则会重定向到主页,否则重定向到 ...