php - SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails -
i know common problem don't know what's wrong here. can see there's //return $user
, shows valid id. checked in database well.
$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();
here migrations: users migration
<?php use illuminate\database\schema\blueprint; use illuminate\database\migrations\migration; class createuserstable extends migration { /** * run migrations. * * @return void */ public function up() { schema::create('users', function($table){ $table->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 migrations. * * @return void */ public function down() { schema::dropifexists('users'); }
}
addresses
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'); }); }
here's screenshot of error if helps.
according error message, error caused inserting value in adresses.user_id (fk src.id), not exist in src.id.
in example, try insert 29 in adresses.user_id, check if select id src id=29
returns result. if not, there problem.
Comments
Post a Comment