Home > Article > Backend Development > Laravel 514 + Bootstrap 334 Note 2: Laravel Routing
1 Routing mechanism
Routing in MVC is a very important function. Its function is:
A. Match the incoming request and the parameters attached to the request according to the user access (URL);
B. Call Request to map the Controller's Action method and pass in the parameters;
C. Return the Action method processing result;
The following figure represents a user request in a simple form:
2 In Laravel Routing
In Laravel 5.1.4, the routing configuration file is app/Http/routes.php.
2.1 Directly return string routing
Append the following code segment after the original code:
Route::get('/hw', function () { return 'Hello World'; });Open the browser to access: http://localhost:801/hw, as shown below:
2.2 Route to return the view
Add the following code segment to the above code:
Route::get('/home', function () { return view('home'); });Create the view file: home.php in the directory resources/views, with the following content:
<html> <body> <h1>home</h1> </body> </html>Open the browser and visit: http://localhost:801/home
What if the code in the above example needs to pass parameters to the view page? Modify our routing code:
Route::get('/home', function () { return view('home', ['name' => '张三']); });Modify the view code:
<html> <body> [<?php echo $name; ?>],您好! </body> </html>Look at the effect of the visit again:
If there are too many views, they are usually stored by module or even by function. Create a new directory in the resources/views directory: public/demo, and then move home.php to this directory.
Modify the routing code in the above example to:
Route::get('/home', function () { return view('public.demo.home', ['name' => '张三']); });You can still open the page normally when you visit again.
2.3 Routing Parameters
As mentioned before, routing can match the user’s request parameters, so how to match? Append the code snippet to the routing file in the above example:
Route::get('user/{name}', function($name) { return '用户姓名:'.$name; });Open the browser and visit: http://localhost:801/user/jack
What if there are two parameters? Woolen cloth? Modify the routing code:
Route::get('user/{name}/{age}', function($name,$age) { return '用户姓名:'.$name.',年龄:'.$age; });Open the browser and visit: http://localhost:801/user/jack/23
What if the age parameter is not necessary? Modify the routing code again:
Route::get('user/{name}/{age?}', function($name,$age=null) { return '用户姓名:'.$name.',年龄:'.$age; });Access address: http://localhost:801/user/jack
2.4 Constraints on routing parameters
Under normal circumstances, some parameters accessed by users have certain Rules, for example, the user ID when reading user information may be a number, the news ID when modifying news information may be a GUID, etc.
Modify the routes.php file and add the following code:
Route::get('new/{id}', function($id) { return '新闻ID:'.$id; })->where('id', '[0-9]+');Open the browser to access http://localhost:801/new/3 like this:
When you can access http://localhost:801/new/abc, the provided page does not exist:
Correspondingly, when multiple parameters are restricted at the same time, you need to use an array , modify the routing code of the above example:
Route::get('new/{id}/{title}', function($id,$title) { return '新闻ID:'.$id.',新闻标题:'.$title; })->where(['id' => '[0-9]+', 'title' => '[a-z]+']);The access effect will not be demonstrated here.
public function boot(Router $router) { // $router->pattern('id', '[0-9]+'); parent::boot($router); }
Modify the routing code in the above example to:
Route::get('new/{id}', function($id) { return '新闻ID:'.$id; });The access effect is the same as the above example and will not be demonstrated here.
2.5 Get routing parameters
You can get routing parameters in routes.php to do other operations. Modify the routing code in the above example:
Route::get('new/{id}', function(Request $request, $id) { if ($request->route('id') == '2') { return '新闻ID是2'; }else{ return '新闻ID不是2,值是:'.$id; } });
in routes.php Insert a new line after php:
use Illuminate\Http\Request;
Open the browser and visit http://localhost:801/new/2 and http://localhost:801/new/3 respectively You can see different page effects.
Routing still has many complex functions that need to be studied.
Copyright Statement: This article is an original article by the blogger and may not be reproduced without the blogger's permission.
The above introduces Laravel 514 + Bootstrap 334 Note 2: Laravel routing, including aspects of content, I hope it will be helpful to friends who are interested in PHP tutorials.