首页 > 解决方案 > Laravel 主键增量在 eloquent 和迁移中

问题描述

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

雄辩

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();
        });
    }

标签: laraveleloquentmigrationprimary-keyauto-increment

解决方案


模型:

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

移民:

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

推荐阅读