了解问题从具有2个参数的数据库中获取一行

时间:2017-09-22 12:17:39

标签: zend-framework zend-db zend-framework3

我认为它可以找到,但它没有。

我的模型类中有一个方法,如下所示:

public function getUnitbyName2($unitname, $ProjectID)
    {
        //$id = (int) $id;
        $rowset = $this->tableGateway->select(['Unitname' => $unitname], ['ProjectID' => $ProjectID]);
        $row = $rowset->current();
        if (! $row) {
//          throw new RuntimeException(sprintf(
//                  'Could not find row with identifier %d',
//                  $unitname
//                  ));
            $row=0;
        }
        return $row;
    }

如果我给出一个现有的unitname和一个不存在的project_ID,我希望得到一些0值。但我总是得到第一个项目中具有给定单位名称的单位数。单位名通常存在于几个不同的项目中。 如果使用两个参数存在,该函数应该获得正确的记录。

我的问题是,使用AND连接的2个参数有什么问题?

1 个答案:

答案 0 :(得分:0)

AbstractTableGateway::select() 接受一个参数,你传递2: 你需要传递1,结合2个数组。 将您的代码更改为:

$rowset = $this->tableGateway->select(['Unitname' => $unitname, 'ProjectID' => $ProjectID]);