Laravel, PHP 및 MySql에 대한 지식이 제한되어 있습니다. 외래 키를 사용하여 3 개의 연결된 테이블이있는 데이터베이스를 설정하려고합니다. 이전에 WorkBench MySql에서이 작업을 수동으로 수행했지만 Laravel에서는이 작업을 수행 할 수 없습니다. 여기에 내 오류와 내 코드가 있습니다.Laravel 마이그레이션에서 3 개의 테이블을 연결하는 방법 (구문 오류 또는 액세스 위반)
SQL STATE[42000]: Syntax error or access violation: 1072 Key column 'cat_id
' doesn't exist in table (SQL: alter table `users` add index `users_cat_id
_usr_id_index`(`cat_id`, `usr_id`))
표 1
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('usr_id')->autoIncrement();
$table->string('usr_email',45)->unique();
$table->string('usr_password',256);
$table->rememberToken();
$table->string('usr_name',45);
$table->string('usr_surname',45);
$table->string('usr_title',45);
$table->string('usr_psc',5);
$table->string('usr_region',128);
$table->string('usr_adress',128);
$table->string('usr_tel',10);
$table->string('usr_tel_int',13);
$table->binary('usr_image');
$table->tinyInteger('usr_type');
$table->index(['cat_id','usr_id'])->nullable();
$table->index(['tem_id','usr_id'])->nullable();
});
}
표 2
public function up()
{
Schema::create('category', function (Blueprint $table) {
$table->primary('cat_id');
$table->string('cat_name',45);
});
Schema::table('category', function(Blueprint $table) {
$table->foreign('cat_id')->references('cat_id')->on('users');
});
}
표 3
public function up()
{
Schema::create('team', function (Blueprint $table) {
$table->increments('tem_id');
$table->unique('tem_sub_id');
$table->string('tem_name',45);
$table->string('tem_subteam_name',45);
});
Schema::table('team', function(Blueprint $table) {
$table->foreign('tem_id')->references('tem_id')->on('users');
});
}
올바르게 마이그레이션을 만드는 문제가 있다면 난 당신이 내가 전에이 작업을 시도 migraion 파일 – DestinatioN