📜  laravel 模型字符串主键 - PHP (1)

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

Laravel 模型字符串主键 - PHP

在 Laravel 中,我们通常使用整数作为模型的主键,例如自增长的 id,但是在某些情况下,我们需要使用字符串作为主键。本文介绍如何在 Laravel 中使用字符串作为模型的主键。

定义模型

我们可以通过 $primaryKey 属性来指定模型的主键,将其设为字符串类型即可。

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class MyModel extends Model
{
    protected $primaryKey = 'my_string_key';
}
数据迁移

接下来,在数据迁移中需要创建主键为字符串类型的数据表,我们需要使用 $table->string() 方法来实现。

<?php

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

class CreateMyModelsTable extends Migration
{
    public function up()
    {
        Schema::create('my_models', function (Blueprint $table) {
            $table->string('my_string_key')->primary();
            $table->string('my_other_field');
            // ...
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('my_models');
    }
}
使用模型

现在我们可以使用我们新创建的 MyModel 模型了。在模型中,我们可以像使用整数主键那样使用字符串主键。

$myModel = MyModel::find('my_key_value');
总结

在 Laravel 中使用字符串作为模型的主键非常简单,只需要将 $primaryKey 属性设置为字符串类型,同时在数据迁移中使用 $table->string() 方法创建数据表即可。