SQLSTATE : Violação de restrição de integridade: 1452 Não é possível adicionar ou atualizar uma linha filho: uma restrição de chave externa falha

Eu sei que este é um problema comum, mas não sei o que há de errado aqui. Como você pode ver, este //return $user e mostra um ID válido. Verificou isso também no database.

  $user = new User; $user->first_name = $data['first_name']; $user->last_name = $data['last_name']; $user->email = $data['email']; $user->phone_no = $data['phone_no']; $user->created_from = 'Web App'; $user->save(); // return $user; Session::put('user_id',$user->id); // return $user->id; $address = new Address; $address->user_id = $user->id; $address->first_name = $data['receiver_first_name']; $address->last_name = $data['receiver_last_name']; $address->email = $data['receiver_email']; $address->address_line_1 = $data['receiver_address_line_1']; $address->address_line_2 = $data['receiver_address_line_2']; $address->landmark = $data['receiver_landmark']; $address->pincode = $data['receiver_pincode']; $address->phone_no = $data['receiver_phone_no']; $address->created_from = 'Web App'; $address->save(); 

Aqui estão as migrações: Esta é a migration dos usuários

 increments('id'); $table->string('first_name'); $table->string('last_name'); $table->string('email'); $table->string('phone_no', 20)->nullable(); $table->string('password')->nullable(); $table->string('remember_token', 100); $table->date('date_of_birth')->nullable(); $table->string('created_from'); $table->timestamps(); $table->softDeletes(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('users'); } 

}

Endereços

 public function up() { Schema::create('addresses', function($table){ $table->increments('id'); $table->integer('user_id')->unsigned(); $table->string('first_name'); $table->string('last_name'); $table->string('email'); $table->string('address_line_1'); $table->string('address_line_2')->nullable(); $table->string('landmark')->nullable(); $table->string('city')->nullable(); $table->string('state')->nullable(); $table->string('phone_no', 13); $table->integer('pincode'); $table->string('created_from'); $table->timestamps(); $table->softDeletes(); $table->foreign('user_id')->references('id')->on('users'); }); } 

Aqui está uma captura de canvas do erro se isso ajudar. Captura de tela do erro

De acordo com a mensagem de erro, seu erro é causado pela inserção de um valor em addresses.user_id (FK para src.id), que não existe no src.id.
No exemplo, você tenta inserir 29 em addresses.user_id, verifique se SELECT id FROM src WHERE id=29 retorna qualquer resultado. Caso contrário, há seu problema.

 $table->integer('user_id')->unsigned(); 

mas

 $table->increments('id'); 

Deveria ser o mesmo: sem assinatura

As chaves devem ser os mesmos tipos de dados