我試圖做一個基本的簡單CRUD使用laravel框架,我設法做出一個簡單的CRUD沒有選擇形式,但是當我使用select形式,它越來越錯誤消息Laravel SQLSTATE [23000]:完整性約束違規:1452無法添加或更新子行
完整的錯誤
SQLSTATE [23000]:完整性約束違規:1452不能添加或更新子行:外鍵約束失敗(
activity_report_2015-04-22
tn_project
, CONSTRAINTfk_client_id
FOREIGN KEY(cv_client_id
)參考文獻tn_client
(cn_id
))(SQL:插入tn_project
(cv_created_by
,,cv_id
,cv_name
,cv_client_id
,cn_invoice_method
,cn_project_rate
,cn_note
)值(ADA,2016年2月18日二十三時52分45秒,TestProject,測試名,$客戶端 - > cn_id,$ invoice-> cn_id,1.2,JustTest))
cv_client_id和cv_invoice_method的來自不同的表,該表是tn_client和tn_invoice_method的價值,我注意到爲什麼值得cv_client_id和cv_invoice_method結果查詢比值比任何想法?
如果能跟大家需要更多的信息,只是讓我知道
查看
<div class="form-group">
<label class="col-md-3 control-label">Client</label>
<div class="col-md-9">
<select name="clientId" id="clientId" class="form-control" placeholder="Select Client">
@foreach ($clients as $client)
<option value='$client->cn_id'>{{$client->cv_name}}</option>;
@endforeach
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">Invoice Method</label>
<div class="col-md-9">
<select type="hidden" name="invoiceId" id="invoiceId" class="form-control">
@foreach ($invoices as $invoice)
<option value='$invoice->cn_id'>{{$invoice->cv_method}}</option>;
@endforeach
</select>
</div>
</div>
控制器
public function createOrEdit(){
$currentUsername = Auth::user()->name;
$isUpdate = false;
$projectId = Input::get('prevId');
//populate data
$project = new Project;
if($projectId != ""){
$project = Project::where('cv_id','=',$projectId)->firstOrFail();
$project->cv_updated_by = $currentUsername;
$project->cn_updated_at = Carbon::now();
$isUpdate = true;
} else{
$project->cv_created_by = $currentUsername;
$project->cn_created_at = Carbon::now();
}
$project->cv_id = Input::get('projectId');
$project->cv_name = Input::get('projectName');
$project->cv_client_id = Input::get('clientId');
$project->cn_invoice_method = Input::get('invoiceId');
$project->cn_project_rate = Input::get('projectRate');
$project->cn_note = Input::get('note');
//execute
if($isUpdate){
Log::info("entering update mode");
Project::where('cv_id','=',$projectId)->update(['cv_id'=>$project->cv_id,
'cv_name'=>$project->cv_name,
'cv_client_id'=>$project->cv_client_id,
'cn_invoice_method'=>$project->cn_invoice_method,
'cn_project_rate'=>$project->cn_project_rate,
'cn_note'=>$project->cn_note,
'cn_updated_at'=>$project->cn_updated_at,
'cv_updated_by'=>$project->cv_updated_by]);
}else{
$project->save();
}
return Response::json(
array(
'content' => Project::with('client','invoice')->get(),
'status' => 'success',
)
);
}
注意:如果在我的控制,我把cv_client_id和cv_invoice_method手動的價值,它的做工精細
OMG,這是工作,我想我需要閱讀更多關於刀片文檔哈哈,謝謝的人 –
歡迎您。試想一下:刀片解析你的* .blade.php文件並查找以@開頭的指令,並用實際的php對象和代碼替換它們。 {{$ test}} = <?php echo $ test;?> – CrackingTheCode
是的,當我看到您的答案時,我只是想通了,再次感謝哈哈 –