Laravel eloquent 中的主键增量和迁移
Laravel primary key incrementation in eloquent and migration
所以我有自定义主键,我不确定是否需要在 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();
});
}
型号:
$keyType
支持 int[eger]
和 string
- 没有
$autoincrement
属性,叫$incrementing
.
迁移:
tinyInteger()
等的第二个参数是$autoIncrement = false
.
- 如果您将列标记为
$autoIncrement
,则不需要也不能使用 ->primary()
(至少在 MySQL 上)。
所以我有自定义主键,我不确定是否需要在 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();
});
}
型号:
$keyType
支持int[eger]
和string
- 没有
$autoincrement
属性,叫$incrementing
.
迁移:
tinyInteger()
等的第二个参数是$autoIncrement = false
.- 如果您将列标记为
$autoIncrement
,则不需要也不能使用->primary()
(至少在 MySQL 上)。