laravel在修改数据库数据的时候总是报错说没有save方法

$table = 'exchange_' . strtolower($coinname);
$data = DB::table($table)->find($id);
$data->status = 4;
if (!$data->save()) {
     $return['message'] = '状态修改失败';
     return $return;
}

改成update方法也不行

阅读 5k
5 个回答

楼上的其实都已经说明白了,只是可能说的不够通俗

DB::table($table)->find($id);

获取到的结果并不是一个Model的对象。所以也就不会有save方法

老哥 我怎么记得find save等这些model的方法呢? 你创建一个model继承Model类,然后在xxxModel::find($id); 试试吧

你这样肯定不行,save方法属于model 的方法,用update 是可以的,比如update(['status'=>1]),
如果你要用save,那个$data不能是这么查询,具体可以看一下官方文档

1.DB::table (xxx)->where ('id',$id)->update([xx])
2.$obj=Model::find($id)
$obj->field=xxxx
$obj->save()

这些都是基础文档上都有
http://laravel.com

DB::table($table)->where('id',$id)->update(['status'=>4]);
别跟模型搞混淆了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题