gpt4 book ai didi

php - Laravel 外部数据库中的外键引用表?

转载 作者:行者123 更新时间:2023-11-30 21:47:40 25 4
gpt4 key购买 nike

我是 Laravel 和一般数据库的新手。我正在编写一个用于学生评估的网络应用程序。我有一个现有的 MySQL 数据库,其中包含我需要的一切;但是,我正在使用 Laravel 的 auth 用户表并尝试添加一个引用 MySQL 数据库中的 Teacher 表的外键。我不断收到以下错误...

php artisan migrate:fresh

In Connection.php line 664:
SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL: alter table users add constraint users_teacher_id_foreign foreign key (teacher_id) references p4j.teacher (teacher_id))

In Connection.php line 458: SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint

我的代码如下...

config/database.php

'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DP_PORT', '3306'),
'database' => env('DB_DATABASE', 'p4j'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DP_PASSWORD', '**mypassword**'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
],

database/migrations/2014_10_12_000000_create_users_table.php

public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->integer('teacher_id')->unsigned();
$table->rememberToken();
$table->timestamps();
});

Schema::table('users', function (Blueprint $table) {
$table->foreign('teacher_id')->references('teacher_id')->on('p4j.teacher');
});
}

app/User.php

protected $fillable = [
'name', 'email', 'password', 'teacher_id'
];

/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];

最佳答案

您只需要确保外键的数据类型 (p4j.teacher.teacher_id) 对应于用户表中 teacher_id 列的相同数据类型。

我们需要查看 p4j.teacher 表的结构。

关于php - Laravel 外部数据库中的外键引用表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48692545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com