首页 > 解决方案 > SQLSTATE[HY000]: 一般错误: 2031 (SQL: select * from `work_permits` where `user_id` = ?) 使用 laravel

问题描述

我收到错误请帮助我如何解决此问题?谢谢。

请检查错误

https://flareapp.io/share/LPdjyyz5

控制器

public function permitBranch(Request $request, $permitbranchId){
   // current date
   $date = date("Y/m/d");
   $userId = User::where('mf_branch_id', $permitbranchId)->pluck('id');
    
   $permit_report = WorkPermit::where('user_id', $userId)->get();
   $data = [
      'permitReports' => $permit_report,
      'date' => $date,
   ];
       
   return  view('cms.report.work_permit_report_list', $data);
}

标签: laravel

解决方案


实际上,您正在使用 pluck 传递数组

   $userId = User::where('mf_branch_id', $permitbranchId)->pluck('id');

它返回这样的数组(键是项目的索引。自动递增的值):

[
    1 => "name1",
    2 => "name2",
    .
    .
    .
    100 => "name100"
]

如果您要获取单个记录或者它的多个 ID 则使用 first() 尝试它,然后使用 whereIn Here

 $permit_report = WorkPermit::whereIn('user_id', $userId)->get();

如果单条记录

     $userId = User::where('mf_branch_id', $permitbranchId)->firstOrFail();
     $permit_report = WorkPermit::where('user_id', $userId->id)->get();

推荐阅读