为何 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');
            }
        }

    }
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 16

update最好带transaction

3年前 评论
66

注意模型里的安全字段

3年前 评论

可以检查一下模型里面有没有设置开放字段

protected $guarded = [];
3年前 评论
Complicated

看看你要更新的字段,数据库的字段长度是不是符合要求,我有一次更新 float,mysql长度设置的短了,死活更新不上去,也不报错,太坑了

3年前 评论

看了前面的答复,再补充两个想法,
1 $user 是不是要重新用DB::table(‘user’);

2.dd()放在了update前面,他本身有die()的处理吧,根本不会往下继续执行的

3年前 评论

update返回的是受影响行数,如果没有任何数据发生变化,也会走到false的

3年前 评论
自由与温暖是遥不可及的梦想
$user->wx_open_id = $wx_user['id'];
$user->promote_user_id = $request->uid;
$user->wx_access_token = $wx_user['token'];
 $user->save();

这种时候 要使用 seve
这样就更新成功了。

3年前 评论

同意楼上:update 返回的是受影响行数,如果没有任何数据发生变化,也会走到 false 的

3年前 评论
if($user->update()) {
     return redirect()->route('recharge.index');
}

可以这么判断是否更新了吗???

3年前 评论
pork 3年前
没前途的程序员 3年前

$user 是你路由注入的 这里是不是有问题,然后没有触发更新

3年前 评论

因为批量更新是这样用的

User::where(xxx)->update(xxx);

而你那种更新应该是这样用

$user->xxx = xxx;
$user->save();
3年前 评论

更新判断我一般都用恒等判断,那样貌似不用考虑数据不变的问题

3年前 评论

内容无变化也返回0 先用 === 来判断到底是upd了没 :sweat_smile:

3年前 评论
        if($user->update()) {
            return redirect()->route('recharge.index');
        }

兄弟你这是更新了空气啊

3年前 评论
      $user_update = [
            'wx_open_id' => $wx_user['id'],
            'promote_user_id' => $request->uid,
            'wx_access_token' => $wx_user['token']
        ];

        if($user->update($user_update)) {
            return redirect()->route('recharge.index');
        }

你这样判断应该是对的

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!