
Laravel 11 入门教程-基础使用
本文最后更新于 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 应用程序。
- 感谢你赐予我前进的力量