为何 update 无效,数据可以 dd
model里fillable我也设置了,但是update就是无效
controller
public function wxLoginCallback(User $user, Request $request) {
$app = \EasyWeChat::OfficialAccount();
$wx_user = $app->oauth->user()->toArray();
if ($user->wx_open_id) {
dd('11111111111111111111');
} else {
dd($wx_user['id'],'222222222');
$user->update([
'wx_open_id' => $wx_user['id'],
'promote_user_id' => $request->uid,
'wx_access_token' => $wx_user['token']
]);
if($user->update()) {
return redirect()->route('recharge.index');
}
}
}
关于 LearnKu
update 没有条件吗?
update最好带transaction
注意模型里的安全字段
可以检查一下模型里面有没有设置开放字段
看看你要更新的字段,数据库的字段长度是不是符合要求,我有一次更新 float,mysql长度设置的短了,死活更新不上去,也不报错,太坑了
看了前面的答复,再补充两个想法,
1 $user 是不是要重新用DB::table(‘user’);
2.dd()放在了update前面,他本身有die()的处理吧,根本不会往下继续执行的
update返回的是受影响行数,如果没有任何数据发生变化,也会走到false的
这种时候 要使用
seve这样就更新成功了。
同意楼上:update 返回的是受影响行数,如果没有任何数据发生变化,也会走到 false 的
可以这么判断是否更新了吗???
$user 是你路由注入的 这里是不是有问题,然后没有触发更新
因为批量更新是这样用的
而你那种更新应该是这样用
更新判断我一般都用恒等判断,那样貌似不用考虑数据不变的问题
内容无变化也返回0 先用 === 来判断到底是upd了没 :sweat_smile:
兄弟你这是更新了空气啊
你这样判断应该是对的