首页 > 解决方案 > Laravel:db - 更新操作不起作用?

问题描述

控制器

public function update(Request $request,$id){  
        
        $validator = Validator::make(
            $request->all(),
            [
                
                'orderId'    => 'required|integer',
                'fileId'    => 'required|integer',
                'status'    => 'required|string'
            ]
        );

        if ($validator->fails()) {
            return response()->json($validator->errors(), 400);
        }

        $data=FileLogs::find($id)->update(['$data->orderId'=>'$request->orderId','$data->fileId'=>'$request->fileId','$data->status'=>'$request->status']);
        return response()->json(['status'=>'success','StatusCode'=> 200,'message'=>'Successfully Updated','data'=>$data]);
   }

该代码不适用于update操作,但它在以下方法中工作。但是,我想update通过直接调用update上面给出的模型来执行操作,因为如果updated不这样做就无法触发事件。我正在使用 laarvel-8。请帮助我完成上述工作。

$data = FileLogs::find($id); 
            if($data){
               $data->orderId=$request->orderId;
               $data->fileId=$request->fileId;
               $data->status=$request->status;
               $data->update();

标签: laravelpostgresqlsql-updatelaravel-8rest

解决方案


从 $request 中删除引号,也不向键添加变量

$data=FileLogs::find($id)->update([
                                   'orderId'=>$request->orderId,
                                   'fileId'=>$request->fileId,
                                   'status'=>$request->status
                                  ]);

推荐阅读