Laravel 路由
在 Laravel 中,所有请求都在路由的帮助下进行映射,基本路由将请求路由到关联的控制器,本章讨论 Laravel 中的路由。
Laravel 中的路由包括以下几类:
基本路由
路由参数
命名路由
基本路由
所有的应用路由都是在app/routes.php文件中注册的。这个文件告诉Laravel它应该响应的URI,相关的控制器将给它一个特定的调用。欢迎页面的示例路由如下所示:
Route::get ('/', function () { return view('welcome');});
观察以下示例以了解有关路由的更多信息:
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>
路由机制如下图所示:
现在让我们详细了解路由机制所涉及的步骤:
步骤1: 最初,我们应该执行应用程序的根 URL;
步骤2: 现在,执行的 URL 应该与路由文件文件,在本例中,它应该匹配方法和根 (‘/’) URL;
步骤3: 该函数调用模板文件 resources/views/welcome.blade.php。接下来,该函数调用view()函数,参数为'welcome',无需加上 blade.php。
这将产生如下图所示的 HTML 输出:
路由参数
有时在Web应用程序中,你可能需要捕获与URL一起传递的参数。为此,你应该修改routes.php文件中的代码。
你可以通过两种方式在routes.php文件中捕获参数,如这里讨论的那样:
必填参数
这些参数是应该为路由 Web 应用程序而强制捕获的参数,例如从 URL 中获取用户的标识号很重要,这可以通过定义路由参数来实现,如下所示:
Route::get('ID/{id}',function($id) { echo 'ID: '.$id; });
可选参数
有时,开发者可以将参数制作成可选的,在URL中的参数名称后加入? ,重要的是要保持作为参数名称提到的默认值。请看下面的例子,它显示了如何定义一个可选的参数 :
Route::get('user/{name?}', function ($name = 'newbiego') { return $name;});
上面的例子检查值是否匹配到newbiego并相应地路由到定义的 URL。
命名路线
命名路由提供了一种创建路由的便捷方式,可以在路由定义上使用 name 方法指定路由的链接,以下代码展示了使用控制器创建命名路由的示例:
Route::get('user/profile', 'UserController@showProfile')->name('profile');
用户控制器将调用showProfile函数,参数为profile,参数在路由中使用name方法定义。