📌  相关文章
📜  laravel 制作迁移控制器资源 mcr - PHP (1)

📅  最后修改于: 2023-12-03 14:43:47.363000             🧑  作者: Mango

使用 Laravel 制作迁移、控制器、资源的 MCR

Laravel 是一个功能丰富的 PHP Web 框架,其提供了一系列工具来帮助我们快速构建 Web 应用程序。其中,MCR(即 Migration、Controller、Resource) 是 Laravel 中最常用的三个概念,也是每个 Laravel 开发人员应该了解的基础知识。

下面,我们将重点介绍如何使用 Laravel 制作迁移、控制器和资源的 MCR。

什么是 MCR

MCR 是 Laravel 中最常见的三个概念,它们分别代表 Migration(迁移)、Controller(控制器)和 Resource(资源)。具体来说:

  • 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 请求映射到 ArticlesControllerindex 方法上:

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 请求映射到 ArticleControllerindex 方法上:

Route::get('/api/articles', 'ArticleController@index');
运行应用程序

一旦我们完成了资源代码和路由定义,我们可以运行应用程序并访问相应 URL 以查看效果。例如,访问 /api/articles 即可查看所有文章的 JSON 格式表示。

结论

MCR 是 Laravel 中最基本的概念之一,也是构建 Laravel 应用程序不可或缺的部分。通过本文的介绍,相信读者可以学习到如何使用 Laravel 制作迁移、控制器和资源的 MCR。