Laravel 是一个流行的 PHP Web 应用框架,以其优雅的语法和强大的功能著称。以下是 Laravel 框架的核心用法及关键概念,结合示例和说明,帮助开发者快速上手。
1. 环境搭建
安装 Laravel
- 通过 Composer 安装:
composer create-project --prefer-dist laravel/laravel project-name
- 配置环境:
- 复制
.env.example
为.env
,配置数据库、应用密钥等。 - 生成应用密钥:
php artisan key:generate
- 复制
2. 路由(Routing)
基本路由
- 定义路由:
routes/web.php
Route::get('/hello', function () { return 'Hello, Laravel!'; });
- 路由参数:
Route::get('/user/{id}', function ($id) { return 'User ID: ' . $id; });
- 路由到控制器:
Route::get('/profile', [UserController::class, 'showProfile']);
3. 控制器(Controllers)
创建控制器
- 使用 Artisan 命令:
php artisan make:controller UserController
-
示例控制器:
namespace App\Http\Controllers; class UserController extends Controller { public function showProfile() { return view('profile'); } }
4. 视图(Views)
创建视图
- 视图文件存储在
resources/views
目录下。 - 示例 Blade 模板:
<!-- resources/views/profile.blade.php --> <h1>User Profile</h1> <p>Name: {{ $name }}</p>
- 传递数据到视图:
public function showProfile() { return view('profile', ['name' => 'John Doe']); }
5. 数据库操作(Eloquent ORM)
模型(Models)
- 创建模型:
php artisan make:model User
-
定义模型:
namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class User extends Model { use HasFactory; }
数据库迁移
- 创建迁移:
php artisan make:migration create<em>users</em>table
- 迁移文件示例:
public function up() { Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); }); }
- 运行迁移:
php artisan migrate
数据操作
- 查询数据:
$users = User::all(); $user = User::find(1);
- 插入数据:
$user = User::create([ 'name' => 'John Doe', 'email' => 'john@example.com', ]);
6. 中间件(Middleware)
创建中间件
- 使用 Artisan 命令:
php artisan make:middleware CheckAge
-
中间件示例:
namespace App\Http\Middleware; class CheckAge { public function handle($request, Closure $next) { if ($request->age <= 18) { return redirect('home'); } return $next($request); } }
- 注册中间件:在
app/Http/Kernel.php
中注册。
7. 表单请求验证(Form Request Validation)
创建表单请求
- 使用 Artisan 命令:
php artisan make:request StoreUserRequest
- 验证规则:
public function rules() { return [ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users', ]; }
- 在控制器中使用:
public function store(StoreUserRequest $request) { $validated = $request->validated(); User::create($validated); }
8. Artisan 命令行工具
常用命令
- 生成控制器:
php artisan make:controller ControllerName
- 生成模型:
php artisan make:model ModelName
- 运行迁移:
php artisan migrate
- 清理缓存:
php artisan cache:clear
- 启动开发服务器:
php artisan serve
9. Blade 模板引擎
模板继承
- 主布局:
<!-- resources/views/layouts/app.blade.php --> <html> <body> @yield('content') </body> </html>
-
子视图:
@extends('layouts.app') @section('content') <h1>Welcome to Laravel</h1> @endsection
控制结构
- 条件语句:
@if ($isAdmin) <p>Admin Panel</p> @endif
- 循环:
@foreach ($users as $user) <p>{{ $user->name }}</p> @endforeach
10. 认证与授权
认证脚手架
- 安装认证系统:
composer require laravel/breeze --dev php artisan breeze:install npm install && npm run dev php artisan migrate
- 路由:
routes/auth.php
中定义了登录、注册等路由。
授权策略
- 创建策略:
php artisan make:policy UserPolicy
- 注册策略:在
AuthServiceProvider
中注册。
11. 队列与任务调度
队列
- 创建队列任务:
php artisan make:job SendEmailJob
- 分发任务:
SendEmailJob::dispatch($user);
任务调度
- 定义调度任务:在
app/Console/Kernel.php
中添加。$schedule->command('inspire')->hourly();
12. API 开发
创建 API 路由
- 在
routes/api.php
中定义:Route::apiResource('posts', PostController::class);
返回 JSON 响应
- 控制器方法:
public function index() { return Post::all(); }
Laravel 提供了丰富的功能和工具,帮助开发者快速构建现代化的 Web 应用。通过掌握路由、控制器、Eloquent ORM、中间件等核心概念,开发者可以高效地实现复杂功能。结合 Artisan 命令行工具和 Blade 模板引擎,开发过程更加便捷。
推荐学习资源:
- Laravel 官方文档:laravel.com/docs
- Laracasts 教程:laracasts.com