Увеличение первичного ключа Laravel в eloquent и миграции - PullRequest
0 голосов
/ 17 сентября 2018

Итак, у меня есть пользовательские первичные ключи, и я не уверен, нужно ли мне определять приращение как в 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();
        });
    }

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

В модели только измените $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();
    });
}

Это должно работать

0 голосов
/ 17 сентября 2018

Модель:

  • $keyType поддерживает int[eger] и string
  • Нет свойства $autoincrement, оно называется $incrementing.

Миграция:

  • Второй параметр tinyInteger() и т. Д. - $autoIncrement = false.
  • Если вы пометите столбец как $autoIncrement, вам не нужнои не может использовать ->primary() (по крайней мере, в MySQL).
...