📅  最后修改于: 2023-12-03 14:43:47.363000             🧑  作者: Mango
Laravel 是一个功能丰富的 PHP Web 框架,其提供了一系列工具来帮助我们快速构建 Web 应用程序。其中,MCR(即 Migration、Controller、Resource) 是 Laravel 中最常用的三个概念,也是每个 Laravel 开发人员应该了解的基础知识。
下面,我们将重点介绍如何使用 Laravel 制作迁移、控制器和资源的 MCR。
MCR 是 Laravel 中最常见的三个概念,它们分别代表 Migration(迁移)、Controller(控制器)和 Resource(资源)。具体来说:
迁移是 Laravel 中管理数据库表的简便方式。通过编写迁移文件,我们可以创建新表、修改表结构、添加索引等操作。
使用 make:migration
Artisan 命令可以创建新的迁移文件。例如,下面的命令将创建一个新的 create_articles_table
迁移文件:
php artisan make:migration create_articles_table --create=articles
创建迁移文件后,我们可以通过编写对应的迁移逻辑来创建、修改或删除表及其字段。例如,下面是一个添加新字段到 articles
表的迁移示例:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddIsPublishedToArticles extends Migration
{
public function up()
{
Schema::table('articles', function (Blueprint $table) {
$table->boolean('is_published')->default(false);
});
}
public function down()
{
Schema::table('articles', function (Blueprint $table) {
$table->dropColumn('is_published');
});
}
}
编写完迁移文件后,我们需要运行 migrate
Artisan 命令来执行迁移文件,从而把我们的表结构同步到数据库中。例如,下面的命令会将所有未执行的迁移文件依次执行:
php artisan migrate
控制器在 Laravel 中负责处理用户请求,从数据库中获取数据,并为用户呈现视图。
使用 make:controller
Artisan 命令可以创建新的控制器类。例如,下面的命令将创建一个新的 ArticlesController
控制器类:
php artisan make:controller ArticlesController
编写控制器逻辑就是在控制器类中编写各种方法来处理不同的请求。例如,下面是一个简单的 index
方法,用于返回所有文章列表:
class ArticlesController extends Controller
{
public function index()
{
$articles = Article::all();
return view('articles.index', ['articles' => $articles]);
}
}
定义路由即将不同的 URL 请求映射到控制器不同的方法上。例如,下面的路由定义会将 /articles
请求映射到 ArticlesController
的 index
方法上:
Route::get('/articles', 'ArticlesController@index');
一旦我们完成了控制器代码和路由定义,我们可以运行应用程序并访问相应 URL 以查看效果。例如,访问 /articles
即可查看所有文章的列表。
资源在 Laravel 中用于定义路由、动作和响应对应的模型、视图等内容。
使用 make:resource
Artisan 命令可以创建新的资源。例如,下面的命令将创建一个新的 ArticleResource
资源:
php artisan make:resource ArticleResource
编写资源逻辑就是在资源类中定义模型数据和如何呈现视图。例如,下面是一个简单的 toArray
方法,用于将文章数据转换为 JSON 格式的表示:
class ArticleResource extends JsonResource
{
public function toArray($request)
{
return [
'title' => $this->title,
'body' => $this->body,
];
}
}
定义资源路由即将不同的 URL 请求映射到资源不同的方法上。例如,下面的路由定义会将 /api/articles
请求映射到 ArticleController
的 index
方法上:
Route::get('/api/articles', 'ArticleController@index');
一旦我们完成了资源代码和路由定义,我们可以运行应用程序并访问相应 URL 以查看效果。例如,访问 /api/articles
即可查看所有文章的 JSON 格式表示。
MCR 是 Laravel 中最基本的概念之一,也是构建 Laravel 应用程序不可或缺的部分。通过本文的介绍,相信读者可以学习到如何使用 Laravel 制作迁移、控制器和资源的 MCR。