Laravel框架用法详解-基础与实践指南

2025-04-20 30

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

Image

(本文来源:https://www.nzw6.com)

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!cheeksyu@vip.qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有积分奖励和额外收入!
5.严禁将资源用于任何违法犯罪行为,不得违反国家法律,否则责任自负,一切法律责任与本站无关