swoft-cloud / swoft

🚀 PHP Microservice Full Coroutine Framework
https://swoft.org
Apache License 2.0
5.58k stars 788 forks source link

Entity::query() 方式无法正确获得结果 #138

Closed jonny77 closed 6 years ago

jonny77 commented 6 years ago
Q A
Bug report? yes/no
Feature request? yes/no
Swoft version x.y.z
Swoole version x.y.z (by php --ri swoole)
PHP version x.y.z (by php -v)
Runtime environment Win10/Mac/CentOS 7/Ubuntu/Docker etc.

Details

普通模式和 高级模式返回结果不一样

// paste output here

Provide minimal script to reproduce the issue



控制器代码: 
 $userLogic  = new UserLogic();
        $data = $userLogic->getUserInfoa('18e8da4757b184c7f3645fc78e4149e2');
        $data = $userLogic->getUserInfo('18e8da4757b184c7f3645fc78e4149e2');
第一个返回了空数据
第二个是符合预期的数据
模型代码:
/**
     * 获取用户信息-测试
     * @param $mid
     * @return  mixed
     */
    public function getUserInfoa($mid){
        $query = User::query()
            ->select('username,id,type')
            ->where('mid',$mid)
            ->execute();
        $result = $query->getResult();
        return $result;
    }

    /**
     * 获取用户信息-测试
     * @param $mid
     * @return  mixed
     */
    public function getUserInfo($mid){
        $em = EntityManager::create();
        $query = $em->createQuery();
        $exec = $query->select('username,id,type')->from(User::class)->where('mid',$mid)->execute();
        $result = $exec->getResult();
        $em->close();

        //$sql = $query->getSql();
        return  $result;
    }
stelin commented 6 years ago

已解决,更新版本,要求最新swoole版本