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

📅  最后修改于: 2023-12-03 15:02:36.257000             🧑  作者: Mango

Laravel 使用迁移制作模型

在 Laravel 中,迁移是一种处理与数据库交互的方式。迁移能够让你以面向对象的方式定义数据库表的模式和结构,而不需要手动编写 SQL 代码。

在这篇文章中,我们将学习如何使用 Laravel 迁移构建模型,让我们一起开始吧!

创建迁移

首先,我们需要创建迁移以便能够通过迁移来定义数据表的架构。我们可以使用 make:migration Artisan 命令来创建迁移。例如:

php artisan make:migration create_users_table --create=users

以上命令将会在 database/migrations 目录下创建一个名为 create_users_table 的迁移文件,并在数据库中创建一个名为 users 的数据表。

一旦迁移创建完成,我们就可以打开该迁移文件并且定义该表的字段。例如,以下代码演示了如何定义一个 users 数据表:

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

class CreateUsersTable extends Migration
{
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('users');
    }
}

以上代码定义了 users 数据表的字段和约束。

运行迁移

一旦我们定义了数据表的模式和结构,我们便可以运行迁移并创建该表。我们使用以下 Artisan 命令来运行所有可用的迁移:

php artisan migrate

如果你只想运行调试迁移或者测试迁移,可以在命令行后加上 --env 和环境名称(例如:--env=testing)。

此外,你可以使用 migrate:rollback 命令来撤销迁移操作。

定义模型

一旦你完成了数据表的架构定义和创建,我们现在可以创建相应的模型来访问该表的数据了。

在 Laravel 中,定义模型使用 Eloquent。我们可以使用 Artisan 命令 make:model 来创建一个空白的 Eloquent 模型,例如:

php artisan make:model User

这将会创建一个名为 User 的模型文件位于 app/Models 目录下。请注意,如果在你的应用程序中有多个表需要创建 Eloquent 模型,则您可以考虑将模型放在其他子目录中。

一旦你创建了模型,你可以定义模型的属性,同时定义与其他表的关联和各种查询方法来获取数据。例如,以下代码显示了如何定义一个 User 模型,同时将模型与 users 表关联:

namespace App\Models;

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

class User extends Model
{
    use HasFactory;

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

以上代码演示了如何定义模型,以及如何使用 $fillable 属性定义可以批量赋值的属性。

使用模型

一旦我们定义了模型,我们便可以使用该模型执行各种操作。以下是一些示例代码,演示了如何在 Laravel 中使用模型:

// 获取所有用户
$users = User::all();

// 根据 ID 获取用户
$user = User::find($id);

// 新增用户
$user = new User;
$user->name = 'John';
$user->email = 'john@example.com';
$user->password = Hash::make('password');
$user->save();

// 更新用户
$user = User::find($id);
$user->name = 'Jane';
$user->save();

// 删除用户
$user = User::find($id);
$user->delete();

以上代码演示了如何使用模型进行 CRUD 操作。

总之,使用迁移和模型可以使数据库的操作变得更加简单和易于管理。在 Laravel 中,这种方式可以大大提高开发者的生产力,使您能够更加专注于业务逻辑的实现。