我写了一个流明代码来更新我的表字段,这是我的代码 -
$field='';
if($request->input('category')){
$val=$request->input('category');
$field="'category' => '$val'";
}
if($request->input('subcategory')){
$val=$request->input('subcategory');
if($field==''){
$field="'sub_category' => '$val'";
} else{
$field.=",'sub_category' => '$val'";
}
}
// return $field;
$Expence=DB::table('expencedetails')
->where('id',$request->input('id'))
->update(['$field']);
$field
的值是 'category' => 'fgfg'
, 'sub_category' => 'ggg'
.
当我运行代码时,它显示错误
SQLSTATE [42S22]:未找到列:1054'字段列表'中的未知列'0'(SQL:update expencedetails set 0 = $ field其中id = 1)
2 回答
您可能需要将逻辑重写为
如果请求有类别,则更新类别
如果请求只有sub_category,则更新sub_category
如果请求同时包含category和sub_category,则更新两者
参考https://laravel.com/docs/5.0/queries#updates
我认为您的更新缺少参数
更改后可能有所帮助: