0
我有兩個相關型號Domain
和Server
。我正嘗試使用表單將數據插入到表中。這裏是我的存儲功能:Laravel - 插入外鍵導致違反完整性約束
public function store(Request $request, Domain $domain, Server $server)
{
$domain->create($request->all());
$server->domain()->associate($domain);
$server->save();
$server->create($request->only(['srv_hostname','srv_ip','srv_port']));
return redirect()->route('domains.index');
}
表servers
有一個FK domain_id
指向PK domain.id
一旦提交我的形式我得到的錯誤:
SQLSTATE [23000]:完整性約束違規:1048列 '域ID' 不能爲空(SQL:插入
servers
(domain_id
,updated_at
,created_at
)值(,2015年11月25日10時55分45秒,2015年11月25日10時55分45秒))
似乎fk沒有正確鏈接到pk ..但我不知道如何解決這個問題。謝謝:)
注:
1 - 我的2種相關機型:
Class Server extends Eloquent {
public function domain(){
return $this->belongsTo('Domain');
}
// $fillable and stuff..
}
-
Class Domain extends Eloquent {
public function servers(){
return $this->hasMany('Server');
}
//
}
2 - 我的表是相關的:
Schema::table('servers', function($table){
$table->foreign('domain_id')
->references('id')
->on('domains')
->onDelete('cascade');
});
其解決了這個問題,該生產線'$服務器 - >填充($請求 - >只([ 'srv_hostname', 'srv_ip', 'srv_port']));'應雖然保持。否則'save'函數只存儲外鍵和時間戳。 – RidRoid