背后的力量
你的 伟大构想

Laravel 是一个高效的全栈 Web 框架。将 Laravel 及其丰富的生态系统与 Livewire、React 或 Vue 配对,构建你的下一个伟大构想,并以你从未想象过的速度发布。

开始使用 观看 Laracasts

你需要的一切,让你变得出色。

开箱即用,Laravel 为所有现代 Web 应用程序所需的常见功能提供了优雅的解决方案。现在是开始构建令人惊叹的应用程序,并停止浪费时间搜索包和重新发明轮子的时候了。

身份验证

验证用户身份就像在 Laravel 路由定义中添加身份验证中间件一样简单

Route::get('/profile', ProfileController::class)
->middleware('auth');

用户身份验证后,你可以通过 Auth 门面访问已通过身份验证的用户

use Illuminate\Support\Facades\Auth;
 
// Get the currently authenticated user...
$user = Auth::user();

当然,你可以定义自己的身份验证中间件,从而自定义身份验证过程。

有关 Laravel 身份验证功能的更多信息,请查看身份验证文档

授权

你经常需要检查已通过身份验证的用户是否被授权执行特定操作。Laravel 的模型策略使之变得轻而易举

php artisan make:policy UserPolicy

在生成的策略类中定义授权规则后,你可以在控制器方法中授权用户的请求

public function update(Request $request, Invoice $invoice)
{
Gate::authorize('update', $invoice);
 
$invoice->update(/* ... */);
}

了解更多

Eloquent ORM

害怕数据库?别怕。Laravel 的 Eloquent ORM 使与应用程序的数据交互变得轻松,并且可以快速搭建模型、迁移和关系

php artisan make:model Invoice --migration

定义模型结构和关系后,你可以使用 Eloquent 强大的、富有表现力的语法与数据库进行交互

// Create a related model...
$user->invoices()->create(['amount' => 100]);
 
// Update a model...
$invoice->update(['amount' => 200]);
 
// Retrieve models...
$invoices = Invoice::unpaid()->where('amount', '>=', 100)->get();
 
// Rich API for model interactions...
$invoices->each->pay();

了解更多

数据库迁移

迁移就像数据库的版本控制,允许你的团队定义和共享应用程序的数据库架构定义

public function up(): void
{
Schema::create('flights', function (Blueprint $table) {
$table->uuid()->primary();
$table->foreignUuid('airline_id')->constrained();
$table->string('name');
$table->timestamps();
});
}

了解更多

验证

Laravel 拥有超过 90 条强大的内置验证规则,并且使用 Laravel Precognition,可以在你的前端提供实时验证

public function update(Request $request)
{
$validated = $request->validate([
'email' => 'required|email|unique:users',
'password' => Password::required()->min(8)->uncompromised(),
]);
 
$request->user()->update($validated);
}

了解更多

通知和邮件

使用 Laravel 通过电子邮件、Slack、SMS、应用程序内等方式快速向用户发送精美样式的通知

php artisan make:notification InvoicePaid

生成通知后,你可以轻松地将消息发送给应用程序的某个用户

$user->notify(new InvoicePaid($invoice));

了解更多

文件存储

Laravel 提供了一个强大的文件系统抽象层,为与本地文件系统和基于云的文件系统(如 Amazon S3)交互提供单一、统一的 API

$path = $request->file('avatar')->store('s3');

无论文件存储在何处,都可以使用 Laravel 简单、优雅的语法与它们进行交互

$content = Storage::get('photo.jpg');
 
Storage::put('photo.jpg', $content);

了解更多

作业队列

Laravel 允许你将缓慢的作业卸载到后台队列,从而保持 Web 请求的快速响应

$podcast = Podcast::create(/* ... */);
 
ProcessPodcast::dispatch($podcast)->onQueue('podcasts');

你可以运行任意数量的队列工作进程来处理你的工作负载

php artisan queue:work redis --queue=podcasts

为了更好地了解和控制队列,Laravel Horizon 为 Laravel 驱动的 Redis 队列提供了一个精美的仪表板和代码驱动的配置。

了解更多

任务调度

使用富有表现力的语法调度重复作业和命令,告别复杂的配置文件

$schedule->job(NotifySubscribers::class)->hourly();

Laravel 的调度程序甚至可以处理多个服务器,并提供内置的重叠预防功能

$schedule->job(NotifySubscribers::class)
->dailyAt('9:00')
->onOneServer()
->withoutOverlapping();

了解更多

测试

Laravel 是为测试而构建的。从单元测试到浏览器测试,你都会对部署应用程序更有信心

$user = User::factory()->create();
 
$this->browse(fn (Browser $browser) => $browser
->visit('/login')
->type('email', $user->email)
->type('password', 'password')
->press('Login')
->assertPathIs('/home')
->assertSee("Welcome {$user->name}")
);

了解更多

事件和 WebSockets

Laravel 的事件允许你发送和监听整个应用程序中的事件,并且可以将侦听器轻松地调度到后台队列

OrderShipped::dispatch($order);
class SendShipmentNotification implements ShouldQueue
{
public function handle(OrderShipped $event): void
{
// ...
}
}

你的前端应用程序甚至可以使用 Laravel Echo 和 WebSockets 订阅你的 Laravel 事件,从而允许你构建实时、动态的应用程序

Echo.private(`orders.${orderId}`)
.listen('OrderShipped', (e) => {
console.log(e.order);
});

了解更多

我们仅仅触及了皮毛。Laravel 涵盖了构建 Web 应用程序所需的一切,包括电子邮件验证、速率限制和自定义控制台命令。查看Laravel 文档以继续学习或立即开始使用我们的Laravel bootcamp

一个框架,
多种风格。

有数十种方法可以构建应用程序的前端。值得庆幸的是,Laravel 为你提供了广泛的选择。无论你喜欢传统的 PHP 后端、使用 Laravel Livewire 的现代前端,还是对 React 和 Vue 百看不厌,Laravel 都允许你在极短的时间内交付高度精美和可维护的应用程序。

使用入门套件开始吧。

无论您喜欢 Livewire 还是 React,Laravel 的入门套件都可以让您快速上手。在几分钟内,您就可以拥有一个功能齐全的应用程序,该应用程序将 Laravel 和 Tailwind 与您选择的前端配对。

Laravel Breeze

Laravel Breeze 是一个轻量级的入门套件,包括 Tailwind 样式的身份验证用户个人资料管理模板。

  • 用户注册和登录
  • 密码重置
  • 电子邮件验证
  • 用户个人资料管理
  • Blade 或 Inertia(带有 Vue 或 React)
  • 可选的 TypeScript 支持
  • 可选的暗黑模式支持

了解更多

Laravel Jetstream 是一个功能强大的入门套件,具有身份验证视图、用户个人资料管理、团队管理等功能。

  • 用户注册和登录
  • 密码重置
  • 电子邮件验证
  • 用户个人资料管理
  • 用户个人资料照片
  • Livewire 或 Inertia (带 Vue)
  • 可选的团队管理
  • 可选的暗黑模式,等等...

了解更多

社区
和生态系统。

Laravel 最大的优势在于其充满热情的社区和生态系统。参加全球各地举行的会议,或者顺道拜访您当地的聚会。从我们的专用课程平台 Laracasts 学习,并享受大量的软件包和教程。