嗨,大家好,我想知道你們中的任何一個人是否嘗試過使用3個相關的表格在laravel的表格中插入一條記錄?例如Laravel插入3個相關表格
// Database Schema for Pharmacy
Schema::create('pharmacies', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->text('address');
});
// Relationship in App\Pharmacy table
public function pharmacists() {
return $this->hasMany('App\Pharmacist');
}
現在我有另一個表
Schema::create('pharmacists', function (Blueprint $table) {
$table->increments('id');
$table->integer('pharmacy_id')->unsigned()->index();
$table->foreign('pharmacy_id')->references('id')->on('pharmacies')->onDelete('cascade');
$table->string('fname');
});
// And this is the relationship in App\Pharmacist class
public function account() {
return $this->hasOne('App\Account');
}
public function pharmacy() {
return $this->belongsTo('App\Pharmacy');
}
現在第三臺
// This contain the foreign key for pharmacist_id
Schema::create('accounts', function (Blueprint $table) {
$table->increments('id');
$table->integer('pharmacist_id')->unsigned()->index();
$table->foreign('pharmacist_id')->references('id')->on('pharmacists')->onDelete('cascade');
$table->string('username')->unique();
});
// This is the relationship in App\Account class
public function pharmacists() {
return $this->belongsTo('App\Pharmacist');
}
現在我試圖AccountsController下
$input = Request::all();
$pharmacy = Pharmacy::create([
"name" => "Wendies Chicken",
"address" => "My Address",
]);
$pharmacists = new Pharmacist([
"fname" => "Administrator",
]);
$account = new Account([
"username" => "root",
]);
$pharmacists->account()->save($account);
$pharmacy->pharmacists()->save($pharmacists);
保存這個使用此代碼但我收到了一封電子郵件恐怖說
Integrity constraint violation: 1048 Column 'pharmacist_id' cannot be null (SQL: insert into `accounts` (`username`, `pharmacist_id`, `updated_at`, `created_at`) values (root, 2015-08-09 05:13:31, 2015-08-09 05:13:31))
不知道如何保存這只是一個節省。我想保存3個相關表中的記錄。有人可以幫我弄這個嗎。由於
此問題解決了非常感謝,雖然我這樣做,而不是$ pharmacy->藥劑師() - >保存($藥師) - >賬戶() - >保存($帳戶);它似乎也起作用。謝謝你 –