Laravel SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行
技术问答
324 人阅读
|
0 人回复
|
2023-09-12
|
我正在尝试使用它laravel框架制作基本简单CRUD,我试图制作一种简单的形式,没有选择形式CRUD,但当我使用选择形式时,我收到了错误的信息# k; {% P& B3 l3 E. b. R# N
完全错误% y/ C$ u5 J- r7 A
SQLSTATE" x k' o2 [/ g' V
[23000]:完整性约束违规:1452不能添加或更新子行,外键约束失败(activity_report_2015-04-22。tn_project,约束fk_client_id外键(cv_client_id)参考tn_client(cn_id))(SQL:INSERT2 q/ P: a$ |4 K& {) w
INTO
4 u, K: h+ p: A+ ?# etn_project(cv_created_by,cn_created_at,cv_id,cv_name,cv_client_id,cn_invoice_method,cn_project_rate,cn_note)值(ada,2016-02-18
$ p r3 @% x& |23:52:45,TestProject,TestName,$ client-> cn_id,$ invoice->& S7 [4 G; X* s/ P' a* K
cn_id,1.2,JustTest))
# k+ ], ?# Z+ u, w8 J' f* m A; z的价值 cv_client_id 和 cv_invoice_method 来自不同的表,是 tn_client 和. z& k) s% Y) n/ P
tn_invoice_method ,我注意到为什么价值 cv_client_id 和 cv_invoice_method
8 l$ ^3 k6 S5 k, ~: J3 J( n结果查询比Rathen城市的价值,有什么想法?
9 t U& Q: k1 ?9 k3 y1 p/ P如果您需要更多信息,请告诉我
1 G4 s3 P! }+ p4 T看法
% v8 v4 j- A2 l; S/ F Client @foreach ($clients as $client) cn_id'>{{$client->cv_name}}; @endforeach Invoice Method @foreach ($invoices as $invoice) cn_id'>{{$invoice->cv_method}}; @endforeach 控制器0 ]( B! o: s6 |( p8 T
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的 值可以正常工作: }% ^, S/ b9 G
6 N$ A- ?# K9 v 解决方案: |
|
|
|
|
|