📌  相关文章
📜  使用迁移 laravel 制作模型 - PHP (1)

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

使用迁移laravel制作模型

介绍

Laravel是一种开源的PHP web应用程序框架,它是用最新的PHP语言编写的,经过了大量的测试和应用,并且已经成为了PHP编程语言中的主流框架。其中重要的概念之一就是模型(model),模型代表数据库中的表格,通过模型操作数据库表。

在Laravel中,我们可以使用迁移(migration)来创建和修改数据库表和字段。使用Laravel的迁移和模型功能,我们可以在应用程序中轻松地管理数据库表和字段。本文将介绍如何使用迁移Laravel来制作模型。

前提条件

在开始之前,我们需要已经安装并配置好Laravel框架。如果你还没有安装,你可以参考Laravel官方文档安装Laravel。本文使用的是Laravel 8版本。

创建迁移

首先,我们需要创建一个迁移来创建我们的模型对应的数据库表。我们可以使用laravel的 make:model 命令来同时生成模型和对应的迁移。打开终端,在项目根目录下输入以下命令:

php artisan make:model Post -m

其中 Post是我们的模型名称,-m参数表示同时创建对应的迁移文件。执行该命令后,Laravel会在app/Models目录下生成一个Post模型和在database/migrations目录下生成一个迁移文件,我们可以根据需要修改这个迁移文件来定义我们的数据库表:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreatePostsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->text('content');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('posts');
    }
}

上述代码使用Schema类的create方法创建了一个名为posts的表,并定义了idtitlecontenttimestamps字段。我们也可以在这里定义其他的字段,具体实现方式可以参考Laravel的文档。

创建好迁移文件后,我们需要运行迁移来创建数据库表:

php artisan migrate

运行完毕后,数据库中会自动创建名为posts的表。

创建模型

创建完迁移之后,我们还需要创建模型类,以便Laravel可以与数据库进行交互。Laravel的模型通常作为继承自 Illuminate\Database\Eloquent\Model 的类来实现。

首先打开app/Models/Post.php 文件,编辑它:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use HasFactory;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'title',
        'content',
    ];
}

上述代码定义了Post模型,并且指定了模型允许批量赋值的属性列表。在这里,我们定义了titlecontent属性,允许使用create方法进行批量赋值。除了$fillable属性,我们还可以定义其他的属性来规定模型在使用数据库表格时的行为,具体实现方式可以参考Laravel的文档。

使用模型

创建好模型之后,我们就可以在应用程序中使用它了。比如,我们可以在我们的路由中创建一个POST请求,用于创建新的文章:

use App\Models\Post;

Route::post('/posts', function(Request $request) {
    $post = Post::create($request->only(['title', 'content']));
    return response()->json($post);
});

在这里,我们使用Laravel内置的create方法来插入新数据,并返回插入后的数据作为响应。

结论

通过使用迁移Laravel和模型,我们可以轻松地定义和操作数据库表和记录。Laravel提供了非常灵活的迁移和模型机制,可以满足各种应用程序的需求。此外,Laravel还提供了丰富的查询构造器和Eloquent ORM,可以更轻松地查询和操作数据库。详细内容可以参考Laravel官方文档