我认为它可以找到,但事实并非如此。
我的模型类中有一个方法,如下所示:
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个参数有什么问题?
AbstractTableGateway::select()接受一个参数,你传递2:你需要传递1,结合2个数组。将您的代码更改为:
$rowset = $this->tableGateway->select(['Unitname' => $unitname, 'ProjectID' => $ProjectID]);