Может кто-нибудь дать мне решение из следующего сообщения об ошибке "errno: 150" Ограничение внешнего ключа неправильно сформировано ")"?. Проблема возникает, когда я хочу создать внешний ключ из таблицы пользователя в таблицу профиля с помощью атрибута электронной почты, где первичным ключом в таблице профиля является само электронное письмо.
Пользователи таблицы
Schema::create('users', function (Blueprint $table) {
$table->bigInteger('id', 20)->autoIncrement();
$table->string('id_provider', 20)->nullable();
$table->string('provider_name', 255);
$table->string('email', 255)->unique();
$table->foreign('email', 255)->references('email')->on('profile')->onDelete('cascade');
$table->timestamp('email_verified_at')->nullable();
$table->string('password', 255)->nullable();
$table->string('role', 12);
$table->rememberToken();
$table->timestamps();
$table->primary('id');
});
Модель пользователя
/**
* Get the profile record associated with user.
*/
public function profile()
{
return $this->hasOne('App\Profile');
}
Профиль Tabel
Schema::create('profile', function (Blueprint $table) {
$table->string('email', 255)->unique();
$table->string('name', 255);
$table->integer('phone_number', 12)->nullable();
$table->string('gender', 6)->nullable();
$table->integer('date', 2)->nullable();
$table->string('month', 9)->nullable();
$table->integer('year', 4)->nullable();
$table->bigInteger('id_address', 20)->nullable();
$table->string('avatar', 100);
$table->primary('email');
});
Профиль модели
/**
* Get the user that owns the profile.
*/
public function user()
{
return $this->belongsTo('App\User');
}
Спасибо за все решения.