0
我遇到了一個問題,試圖使用laravel將user_id鏈接到另一個表。我正在使用遷移,似乎無法找到我做錯了什麼。我不斷收到錯誤..如何鏈接laravel中的兩個表?
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child
row: a foreign key constraint fails (`ship`.`units`, CONSTRAINT
`units_user_id_foreign` FOREIGN KEY(`user_id`) REFERENCES `users` (`id`))
SQL: INSERT INTO `units` (`unit`, `updated_at`, `created_at`) VALUES (?, ?, ?)
Bindings: array (
0 => 'i987',
1 => '2012-11-27 19:19:42',
2 => '2012-11-27 19:19:42',
)
這裏是我的移民..
Schema::create('users', function($table) {
$table->increments('id');
$table->string('email');
$table->string('unit');
$table->string('password');
$table->timestamps();
});
Schema::create('units', function($table) {
$table->engine = 'InnoDB';
$table->increments('id');
$table->string('unit');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');
$table->timestamps();
});
我的用戶模型......用戶有一個單元
return $this->has_one('Unit');
我的單元模型.. 。屬於用戶
return $this->belongs_to('User');
出於某種原因,ev erytime我註冊一個新用戶,它默認單位表中的user_id爲0.當我創建一個新用戶時,我希望單位表具有正確的user_id,這樣我可以將該用戶和單位關聯起來。你能看到我在這裏做錯了什麼嗎?
我的用戶控制器...
User::create(array(
'email' => Input::get('email'),
'password' => Hash::make($password)
));
Unit::create(array(
'unit' => Input::get('unit');
));
取出外國查詢$表 - >外國( 'USER_ID') - >的引用( 'ID') - >上( '用戶');並..錯誤消失,但單位表中的user_id仍然默認爲0 ... – coryj