easy-swoole / orm

31 stars 27 forks source link

Invoke下update问题 #118

Closed dark-walk closed 4 years ago

dark-walk commented 4 years ago

1.Invoke下使用column返回的是数组而不是该字段的值 2.Invoke下使用update,不能先get再update

DbManager::getInstance()->invoke(function ($client) use ($x, $val, $money) {
        $userModel= UserModel::invoke($client)->field(['nickname'])->get($uid);
        $userModel->nickname = 'xxx';
        $userModel->update();

执行时报错

PHP Fatal error:  Uncaught EasySwoole\ORM\Exception\Exception: update error,pkValue is require in /www/wwwroot/xxxx/vendor/easyswoole/orm/src/AbstractModel.php:608
Stack trace:

必须使用

DbManager::getInstance()->invoke(function ($client) use ($x, $val, $money) {
        $userModel= UserModel::invoke($client)->field(['nickname'])->get($uid);
        $userModel->nickname = 'xxx';
        $userModel->update(['nickname'=> 'xxx'],['uid' => $uid]);

才可以执行成功

xuanyanwow commented 4 years ago

orm 1.4.5 测试正常, pkValue is require代表ORM获取主键失败,先行打印排查表结构是否获取正常,是否设置主键,是否设置复合主键(复合无法识别,需要手动声明表结构)