外键不迁移。我在迁移方面遇到了一些问题。我已经很好地迁移公司 table

foreign key not migrate. I have some problems with migrations. I already well migrate company table

这是我的代码

Schema::create('employees', function (Blueprint $table) {
            $table->id();
            $table->string('first_name');
            $table->text('second_name');
            $table->string('emp_company')->unsigned();
            $table->string('email');
            $table->string('phone');
            $table->timestamps();
            $table->foreign('emp_company')->references('company_name')->on('companies');
        });

这里是我的错误:

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有误;查看与您的 MariaDB 服务器版本对应的手册,了解在第 1 行 'unsigned not null, email varchar(255) not null, phone varchar(255) not null,' 附近使用的正确语法 (SQL: create table employees (id bigint unsigned not null auto_increment 主键,first_name varchar(255) not null,second_name text not null,emp_company varchar(255) unsigned not null,email varchar(255) not null, phone varchar(255) not null, created_at timestamp null, updated_at timestamp null) default character set utf8mb4 collat​​e 'utf8mb4_unicode_ci')

我坚持这个..寻找支持 谢谢。

我认为你的问题在这一行:

 $table->string('emp_company')->unsigned();

unsigned 仅用于数字列,强制只有正数, 字符串列没有UNSIGNED,没有意义

只需删除 ->unsigned() 并且您的代码应该可以工作....