回答

收藏

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    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则