Laravel 7.x 于 2020 年 3 月发布,引入了多项重要特性与优化:


1. 路由模型绑定增强

  • 自定义键名支持:在路由模型绑定中可指定非 id 的字段(如 slug)作为查询键:
    Route::get('posts/{post:slug}', function (Post $post) {
        return $post;
    });
    


2. 路由语法简化

  • 新增 Route::view()Route::redirect() 快捷方法:
    Route::view('/welcome', 'welcome'); // 渲染视图
    Route::redirect('/here', '/there'); // 重定向
    


3. 邮件功能增强

  • 多邮件驱动支持:支持为不同邮件类型配置多个驱动(如 SMTP、Mailgun 并存):
    'mailers' => [
        'smtp' => [/* ... */],
        'mailgun' => [/* ... */],
    ],
    


4. HTTP 客户端优化

  • 集成基于 Guzzle 的轻量级 HTTP 客户端:
    $response = Http::get('https://api.example.com/data');
    


5. Blade 组件与自定义标签

  • 组件化视图:通过 x- 前缀定义可复用组件:
    <x-alert type="error" :message="$message"/>
    

  • 自定义标签:支持通过 @component 扩展 Blade 指令。

6. Eloquent 模型特性

  • 自定义类型转换:支持为模型属性定义自定义转换逻辑:
    protected $casts = [
        'options' => JsonCast::class,
    ];
    

  • 查询优化:新增 whereLike() 等方法简化模糊查询。

7. 辅助函数增强

  • str()Arr 工具类扩展:
    $slug = str('Laravel 7')->slug(); // 生成 "laravel-7"
    


8. CORS 支持

  • 内置跨域资源共享(CORS)中间件,简化 API 跨域配置:
    // 在 Kernel.php 中注册
    protected $middleware = [
        \Fruitcake\Cors\HandleCors::class,
    ];
    


9. 认证改进

  • 脚手架生成的 LoginController 支持自定义用户名(如 username() 方法)。


10. 生命周期优化

  • 框架核心组件升级至 Symfony 5.x,提升性能与稳定性。

:Laravel 7.x 已于 2022 年结束官方支持,建议升级至更新的 LTS 版本(如 Laravel 10)。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐