在雄辩和迁移中的Laravel主键增量

问题描述 投票:1回答:2

所以我有自定义主键,我不确定我是否需要在eloquent和migrations中定义增量?

雄辩

class Question extends Model 
{
protected $primaryKey = 'que_id';
protected $keyType = 'tinyInteger'; 
public $autoincrement = true;
}

移民

public function up()
    {
        Schema::create('questions', function (Blueprint $table) {
        $table->tinyInteger('que_id')->autoIncrement();
        $table->timestamps();
        });
    }

或者只是这样定义它?

public function up()
    {
        Schema::create('questions', function (Blueprint $table) {
        $table->tinyInteger('que_id')->primary();
        $table->timestamps();
        });
    }
laravel eloquent migration primary-key auto-increment
2个回答
1
投票

模型:

  • $keyType支持int[eger]string
  • 没有$autoincrement财产,它被称为$incrementing

移民:

  • tinyInteger()等的第二个参数是$autoIncrement = false
  • 如果将列标记为$autoIncrement,则不需要也不能使用->primary()(至少在MySQL上)。

0
投票

在模型中,只更改$primaryKey

class Question extends Model 
{
    protected $primaryKey = 'que_id';
}

在迁移中,使用tinyIncrements()

public function up()
{
    Schema::create('questions', function (Blueprint $table) {
    $table->tinyInteger('que_id')->unsigned()->autoIncrement();
    $table->timestamps();
    });
}

这应该工作

© www.soinside.com 2019 - 2024. All rights reserved.