search
HomeBackend DevelopmentPHP TutorialLaravel 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:

<h1 id="home">home</h1>

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:

[<?php echo $name; ?>],您好!

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.
In addition, we can configure global restrictions, open the file: app/Providers/RouteServiceProviders.php, and modify the boot method as follows:
    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.

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
PHP Performance Tuning for High Traffic WebsitesPHP Performance Tuning for High Traffic WebsitesMay 14, 2025 am 12:13 AM

ThesecrettokeepingaPHP-poweredwebsiterunningsmoothlyunderheavyloadinvolvesseveralkeystrategies:1)ImplementopcodecachingwithOPcachetoreducescriptexecutiontime,2)UsedatabasequerycachingwithRedistolessendatabaseload,3)LeverageCDNslikeCloudflareforservin

Dependency Injection in PHP: Code Examples for BeginnersDependency Injection in PHP: Code Examples for BeginnersMay 14, 2025 am 12:08 AM

You should care about DependencyInjection(DI) because it makes your code clearer and easier to maintain. 1) DI makes it more modular by decoupling classes, 2) improves the convenience of testing and code flexibility, 3) Use DI containers to manage complex dependencies, but pay attention to performance impact and circular dependencies, 4) The best practice is to rely on abstract interfaces to achieve loose coupling.

PHP Performance: is it possible to optimize the application?PHP Performance: is it possible to optimize the application?May 14, 2025 am 12:04 AM

Yes,optimizingaPHPapplicationispossibleandessential.1)ImplementcachingusingAPCutoreducedatabaseload.2)Optimizedatabaseswithindexing,efficientqueries,andconnectionpooling.3)Enhancecodewithbuilt-infunctions,avoidingglobalvariables,andusingopcodecaching

PHP Performance Optimization: The Ultimate GuidePHP Performance Optimization: The Ultimate GuideMay 14, 2025 am 12:02 AM

ThekeystrategiestosignificantlyboostPHPapplicationperformanceare:1)UseopcodecachinglikeOPcachetoreduceexecutiontime,2)Optimizedatabaseinteractionswithpreparedstatementsandproperindexing,3)ConfigurewebserverslikeNginxwithPHP-FPMforbetterperformance,4)

PHP Dependency Injection Container: A Quick StartPHP Dependency Injection Container: A Quick StartMay 13, 2025 am 12:11 AM

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Dependency Injection vs. Service Locator in PHPDependency Injection vs. Service Locator in PHPMay 13, 2025 am 12:10 AM

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHP performance optimization strategies.PHP performance optimization strategies.May 13, 2025 am 12:06 AM

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHP Email Validation: Ensuring Emails Are Sent CorrectlyPHP Email Validation: Ensuring Emails Are Sent CorrectlyMay 13, 2025 am 12:06 AM

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools