安装Laravel
-
从getcomposer.org/download/下载并安装最新版本的Composer.
-
在Visual Studio Code中打开Windows终端,用下面的命令安装Laravel安装程序。
composer global require laravel/installer -
创建新的文件夹,命名为LearnLaravelWithRealApps.使用Visual Studio Code打开LearnLaravelWithRealApps文件夹.在这个文件夹中,创建新的项目,名为LearnLaravelWithRealApps,命令如下。
laravel new LearnLaravelWithRealApps
-
运行LearnLaravelWithRealApps项目,命令如下。
php artisan serve -
打开LearnLaravelWithRealApps项目,网址如下。
http://localhost:8000(adsbygoogle = window.adsbygoogle || []).push({});

创建控制器
在app/Http/Controllers文件夹下创建名为DemoController.php的新PHP文件,如下所示。
<?php
namespace App\Http\Controllers;
class DemoController extends Controller
{
public function index()
{
return view('demo/index');
}
public function index2()
{
return view('demo/index2');
}
public function index3()
{
return view('demo/index3');
}
}
创建视图
在resources/views文件夹下创建名为demo的新文件夹。在这个文件夹中,创建新的Blade文件,如下所示。
索引视图
在resources/views/demo文件夹中,创建名为index.blade.php的新Blade文件,如下所示。
<html>
<head>
<title>Laravel</title>
</head>
<body>
<h3>Index</h3>
</body>
</html>
索引 2 视图
在resources/views/demo文件夹中,创建名为index2.blade.php的新Blade文件,如下所示。
<html>
<head>
<title>Laravel</title>
</head>
<body>
<h3>Index 2</h3>
</body>
</html>
索引3视图
在resources/views/demo文件夹中,创建名为index3.blade.php的新Blade文件,如下所示。
<html>
<head>
<title>Laravel</title>
</head>
<body>
<h3>Index 3</h3>
</body>
</html>
创建中间文件
使用下面的命令行来创建新的中间件。
php artisan make:middleware YourMiddleware
Log1中间件
使用php artisan make:middleware Log1Middleware命令行创建Log1Middleware,如下。
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class Log1Middleware
{
public function handle(Request $request, Closure $next)
{
echo '<br>date: '.date('d/m/Y H:i:s');
return $next($request);
}
}
Log2中间件
使用php artisan make:middleware Log2Middleware命令行来创建Log2Middleware,如下所示。
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\URL;
class Log2Middleware
{
public function handle(Request $request, Closure $next)
{
echo '<br>'.URL::current();
return $next($request);
}
}
Log3中间件
使用php artisan make:middleware Log3Middleware命令行来创建Log3Middleware,如下所示。
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class Log3Middleware
{
public function handle(Request $request, Closure $next)
{
echo '<br>ip: '.$request->ip();
return $next($request);
}
}
Log4中间件
使用php artisan make:middleware Log4Middleware命令行来创建Log4Middleware,如下所示。
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class Log4Middleware
{
public function handle(Request $request, Closure $next)
{
echo '<br>path: '.$request->path();
return $next($request);
}
}
向内核声明中间件
打开App\Http\Kernel.php文件,向**$routeMiddleware**声明新的中间件,如下所示。
protected $routeMiddleware = [
'log1Middleware' => \App\Http\Middleware\Log1Middleware::class,
'log2Middleware' => \App\Http\Middleware\Log2Middleware::class,
'log3Middleware' => \App\Http\Middleware\Log3Middleware::class,
'log4Middleware' => \App\Http\Middleware\Log4Middleware::class,
];
创建路由
打开路由文件夹中的web.php文件,添加新的路由,如下所示。
<?php
use App\Http\Controllers\DemoController;
use Illuminate\Support\Facades\Route;
Route::group(['prefix' => 'demo', 'middleware' => ['log1Middleware', 'log2Middleware', 'log3Middleware']], function () {
Route::get('/', [DemoController::class, 'index']);
Route::get('/index', [DemoController::class, 'index'])->middleware(['log4Middleware']);
Route::get('/index2', [DemoController::class, 'index2'])->withoutMiddleware(['log2Middleware', 'log3Middleware']);
Route::group(['prefix' => 'index3', 'excluded_middleware' => ['log1Middleware', 'log2Middleware']], function () {
Route::get('/', [DemoController::class, 'index3']);
});
});
Laravel项目的结构
