Я пытаюсь создать новую миграцию для моей таблицы users, у меня есть следующая схема:
Schema::create('users', function($t) { $t->increments('id'); $t->string('username', 16); $t->string('password', 64); $t->integer('role', 64); $t->timestamps(); });
Когда я пытаюсь запустить php artisan из терминала, я получаю следующую ошибку:
[Исключение]
SQLSTATE [42000]: Синтаксическая ошибка или нарушение доступа: 1075 Неверное определение таблицы; может быть только один автоматический столбец, и он должен быть определен как ключ (SQL: create tableusers
(id
int unsigne d not null auto_increment primary key,username
varchar (16) not null,password
varchar (64) no t null,role
int not null auto_increment первичный ключ,created_at
timestamp default 0 not null,updated_at
timestamp default 0 not null)) (Bindings: array (
))
Ошибка имеет какое-то отношение к полю «role», так как при ее удалении кажется, что он работает нормально.
Заранее благодарим за любую помощь или прозрение.
Второй параметр для integer
– это флаг автоматического увеличения.
public function integer($column, $autoIncrement = false, $unsigned = false)
https://github.com/laravel/framework/blob/5.4/src/Illuminate/Database/Schema/Blueprint.php#L510
$t->integer('role', false);
Это исправляет это.
Атрибут длины целого не разрешен. Удалите его и попробуйте.