Mam tabele te dwie bazy danych:laravel Database Schema, Nullable obce
- tabel użytkownika
- Stoły Partner
tabel użytkownika będzie obsługiwać tego rodzaju informacji
Schema::create('users', function (Blueprint $table) {
$table->increments('id')->unique();
$table->string('email')->unique();
$table->string('username')->unique();
$table->string('password', 60);
$table->string('photo')->nullable();
$table->integer('partner_id')->unsigned();
$table->foreign('partner_id')->references('id')->on('partners');
$table->rememberToken();
$table->timestamps();
});
Podczas gdy Partner Tabl es wola zawiera wszystkie meta danych użytkownika, takich jak imię i nazwisko, itp
Schema::create('partners', function (Blueprint $table) {
/**
* Identity Columns
*/
$table->increments('id')->unique();
$table->string('first_name');
$table->string('middle_name')->nullable();
$table->string('last_name')->nullable();
$table->string('display_name')->nullable();
$table->string('email')->unique()->nullable();
$table->string('website')->nullable();
$table->string('phone')->nullable();
$table->string('mobile')->nullable();
$table->string('fax')->nullable();
$table->date('birthdate')->nullable();
$table->longText('bio')->nullable();
$table->string('lang')->nullable(); //Language
/**
* Address Columns
*/
$table->text('street')->nullable();
$table->text('street2')->nullable();
$table->integer('country_id')->unsigned(); // foreign
$table->foreign('country_id')->references('id')->on('countries');
$table->integer('state_id')->unsigned(); // foreign
$table->foreign('state_id')->references('id')->on('country_states');
$table->string('city')->nullable();
$table->string('district')->nullable();
$table->string('area')->nullable();
$table->string('zip')->nullable();
});
Kiedy użytkownik loguje się do serwisu Chcę tylko kilka pól, które są, username
, email address
, password
, first name
i last name
. Są to tylko wymagane pola.
Informacje w tabelach partnerów można później wypełnić po zakończeniu rejestracji użytkownika na stronie.
Ale ze względu na strukturę klucza obcego, nie może postępować dalej z powodu tego błędu:
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`mytable`.`tbl_partners`, CONSTRAINT `partners_country_id_foreign` FOREIGN KEY (`country_id`) REFERENCES `tbl_countries` (`id`)) (SQL: insert into `tbl_partners` (`first_name`, `last_name`, `display_name`, `email`, `updated_at`, `created_at`) values (Jack, Wilson, admin, [email protected], 2016-06-09 19:41:18, 2016-06-09 19:41:18))
wiem, że to jest przyczyna przy stole krajów, które są wymagane przy stole partnerskim.
Moje pytanie brzmi: czy istnieje obejść więc mogę wypełnić kraj lub innych wymaganych danych na stole bez partnera, ale zachować schematu tabeli zagranicznej dla krajów, stanów itp
Jeśli trzeba zmienić pustych pól po utworzeniu schematu, wówczas linia powinna być $ RTV-> Integer ('country_id') -> pustych() -> unsigned() -> zmiana (); – sh6210