本文最后更新于 2024-12-06,文章内容可能已经过时,请注意发布时间。

Laravel 11 入门教程

Laravel 是一个简洁、优雅的 PHP Web 开发框架,以其高效的开发效率和强大的功能而受到广泛欢迎。本文将为大家带来 Laravel 11 的入门教程,帮助大家快速上手这个强大的框架。

一、Laravel 11 的新特性

  • 优化的 Eloquent ORM:Laravel 11 对 Eloquent ORM 进行了优化,提高了查询性能和数据处理能力。例如,新增了一些查询方法和关系类型,使得数据库操作更加方便快捷。

  • 改进的路由系统:路由系统在 Laravel 11 中得到了改进,更加灵活和易于使用。可以使用更简洁的语法定义路由,并且支持更多的路由参数类型。

  • 增强的验证功能:验证功能在 Laravel 11 中得到了增强,提供了更多的验证规则和错误处理方式。可以更加方便地对用户输入进行验证,确保数据的合法性。

  • 新的任务调度器:Laravel 11 引入了新的任务调度器,使得定时任务的管理更加方便。可以使用更简洁的语法定义定时任务,并且支持更多的任务类型。

  • 改进的日志系统:日志系统在 Laravel 11 中得到了改进,提供了更多的日志级别和输出方式。可以更加方便地记录应用程序的运行状态和错误信息。

二、Laravel 11 的目录结构

Laravel 11 的目录结构与之前的版本基本相同,但也有一些细微的变化。下面是 Laravel 11 的主要目录结构:

app/:           # 包含应用的核心代码。
  Controllers/: # 存储控制器类,处理HTTP请求并返回响应。
  Models/:      # 定义与数据库表对应的模型类。
  Providers/:   # 提供服务注册和启动逻辑的服务提供者。
bootstrap/:     # 存储引导脚本和缓存文件。
  cache/:       # 存储配置、路由和其他生成的缓存文件。
config/:        # 存储各种配置文件,如应用设置、数据库连接等。
database/:      # 包含数据库迁移文件和填充数据文件。
  migrations/:  # 数据库迁移文件,用于定义数据库表结构的变化。
  seeds/:       # 填充数据文件,用于向数据库中插入初始数据。
public/:        # Web服务器根目录。
  index.php:    # 应用入口点。
  .htaccess:    # Apache服务器的重写规则。
resources/:     # 存储视图模板、语言文件和其他前端资源。
  lang/:        # 语言文件,用于国际化支持。
  views/:       # Blade模板文件,用于生成HTML页面。
routes/:        # 定义URL路由和路由组。
storage/:       # 存储框架生成的文件和应用生成的内容。
  app/:         # 存储用户上传的文件或其他内容。
  framework/:   # 存储会话、缓存和其他框架生成的文件。
  logs/:        # 日志文件。
tests/:         # 单元测试和功能测试文件。
vendor/:        # Composer依赖包存储位置。
  • app 目录:包含应用程序的主要代码,如控制器、模型、服务提供者等。

  • bootstrap 目录:包含框架的启动文件和缓存目录。

  • config 目录:包含应用程序的配置文件。

  • database 目录:包含数据库迁移文件和种子文件。

  • public 目录:包含应用程序的入口文件和静态资源文件。

  • resources 目录:包含视图文件、语言文件和其他资源文件。

  • routes 目录:包含应用程序的路由文件。

  • storage 目录:包含应用程序的存储文件,如日志文件、缓存文件等。

  • tests 目录:包含应用程序的测试文件。

  • vendor 目录:包含 Composer 安装的第三方库文件。

三、安装 Laravel 11

  • 安装 Composer:Laravel 是通过 Composer 进行安装的,因此首先需要安装 Composer。可以在Composer 官网下载安装程序,按照提示进行安装即可。

  • 创建项目:安装完 Composer 后,可以使用以下命令创建一个新的 Laravel 11 项目:

    composer create-project --prefer-dist laravel/laravel my-project

这个命令将在当前目录下创建一个名为my-project的新 Laravel 项目。

  • 安装依赖:创建项目后,需要进入项目目录并安装依赖:

cd my-project
composer install

这个命令将安装项目所需的所有依赖库。

  • 配置环境:Laravel 11 需要一些环境变量来运行,如数据库连接信息、应用密钥等。可以在.env文件中配置这些环境变量。可以使用以下命令创建一个.env文件的示例:

cp.env.example.env

然后,可以根据实际情况修改.env文件中的配置信息。

四、使用 php artisan install:api

在 Laravel 11 中,官方取消了默认的api.php文件,但也引入了一个新的命令php artisan install:api,用于快速创建一个基于 API 的项目结构。这个命令将自动生成一些文件和目录,包括控制器、模型、路由等,使得创建 API 项目更加方便快捷。

使用这个命令非常简单,只需要在项目目录下运行以下命令即可:

php artisan install:api

运行这个命令后,Laravel 将自动创建一个基于 API 的项目结构,并安装一些必要的依赖库。可以根据实际情况修改生成的文件和目录,以满足项目的需求。

五、路由和控制器

  • 定义路由:在 Laravel 中,路由用于定义应用程序的 URL 结构和对应的处理逻辑。可以在routes/web.php文件中定义 Web 路由,在routes/api.php文件中定义 API 路由。

例如,以下是一个简单的 Web 路由定义:

Route::get('/', function () {
    return 'Hello, Laravel 11!';
});

这个路由将处理根路径(/)的请求,并返回一个字符串Hello, Laravel 11!。

  • 创建控制器:控制器是用于处理路由请求的逻辑代码。可以使用以下命令创建一个新的控制器:

php artisan make:controller MyController

这个命令将在app/Http/Controllers目录下创建一个名为MyController.php的新控制器文件。

以下是一个简单的控制器示例:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class MyController extends Controller
{
    public function index()
    {
        return 'Hello from MyController!';
    }
}

可以在路由中使用这个控制器来处理请求:

Route::get('/my-controller', [App\Http\Controllers\MyController::class, 'index']);

或者

Route::get('/my-controller', 'MyController@index');

这个路由将处理/my-controller路径的请求,并调用MyController控制器的index方法。

六、模型和数据库操作

  • 创建模型:模型是用于与数据库进行交互的类。可以使用以下命令创建一个新的模型:

php artisan make:model MyModel

这个命令将在app/Models目录下创建一个名为MyModel.php的新模型文件。

以下是一个简单的模型示例:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class MyModel extends Model
{
    protected $table = 'my_table';
}

可以在模型中定义属性和方法,用于与数据库进行交互。

  • 数据库操作:可以使用模型来进行数据库操作,如查询、插入、更新和删除数据。以下是一些常见的数据库操作示例:

// 查询所有数据
$myModels = MyModel::all();

// 查询单个数据
$myModel = MyModel::find(1);

// 插入数据
$myModel = new MyModel();
$myModel->name = 'John Doe';
$myModel->save();

// 更新数据
$myModel = MyModel::find(1);
$myModel->name = 'Jane Doe';
$myModel->save();

// 删除数据
$myModel = MyModel::find(1);
$myModel->delete();

七、视图和模板

  • 创建视图:视图是用于显示用户界面的文件。可以在resources/views目录下创建视图文件。

以下是一个简单的视图示例:

<!DOCTYPE html>
<html>
<head>
    <title>Hello, Laravel 11!</title>
</head>
<body>
    <h1>Hello, Laravel 11!</h1>
</body>
</html>
  • 在控制器中返回视图:可以在控制器中使用view方法返回视图:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class MyController extends Controller
{
    public function index()
    {
        return view('my-view');
    }
}

这个控制器的index方法将返回名为my-view的视图。

  • 传递数据到视图:可以在控制器中使用view方法的第二个参数传递数据到视图:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class MyController extends Controller
{
    public function index()
    {
        $name = 'John Doe';
        return view('my-view', ['name' => $name]);
    }
}

在视图中可以使用传递的数据:

<!DOCTYPE html>
<html>
<head>
    <title>Hello, Laravel 11!</title>
</head>
<body>
    <h1>Hello, {{ $name }}!</h1>
</body>
</html>

八、中间件

中间件是用于在请求处理过程中执行一些特定任务的代码。可以使用中间件来进行身份验证、日志记录、缓存控制等。

  • 创建中间件:可以使用以下命令创建一个新的中间件:

php artisan make:middleware MyMiddleware

这个命令将在app/Http/Middleware目录下创建一个名为MyMiddleware.php的新中间件文件。

以下是一个简单的中间件示例:

namespace App\Http\Middleware;

use Closure;

class MyMiddleware
{
    public function handle($request, Closure $next)
    {
        // 在请求处理之前执行的代码
        return $next($request);
    }
}
  • 注册中间件:可以在app/Http/Kernel.php文件中注册中间件。在$middleware数组中添加中间件类名,即可将中间件应用于所有请求。在$routeMiddleware数组中添加中间件别名和中间件类名,即可在路由中使用中间件别名来应用中间件。

例如,以下是在app/Http/Kernel.php文件中注册中间件的示例:

protected $middleware = [
    // 其他中间件
    \App\Http\Middleware\MyMiddleware::class,
];

protected $routeMiddleware = [
    // 其他中间件别名
    'my-middleware' => \App\Http\Middleware\MyMiddleware::class,
];
  • 在路由中使用中间件:可以在路由中使用中间件别名来应用中间件:

Route::get('/my-route', function () {
    return 'Hello, Laravel 11!';
})->middleware('my-middleware');

这个路由将在处理请求之前应用名为my-middleware的中间件。

九、总结

本文介绍了 Laravel 11 的入门教程,包括新特性、目录结构、安装方法、路由和控制器、模型和数据库操作、视图和模板、中间件等内容。希望通过本文的介绍,大家能够快速上手 Laravel 11,开发出高效、强大的 Web 应用程序。