Zend DB 调用未定义的方法 where()

Zend DB call to undefined method where()

下面的查询 returns 一个 Call to undefined method Zend\Db\ResultSet\ResultSet::where() 错误。

$rowset = $this->table->select()->where("email='$str'");

然而这有效:

$rowset = $this->table->select(["email" => $str]);

依赖项如下:

use Zend\Db\Adapter\Adapter;
use Zend\Db\Sql\Where;
use Zend\Db\Sql\Select;
use Zend\Db\TableGateway\TableGateway;
use Zend\Db\TableGateway\Feature\RowGatewayFeature;
use Zend\Db\TableGateway\Feature\MetadataFeature;
use Zend\Db\TableGateway\Feature\FeatureSet;

有人知道为什么吗?我基本上只是想使用 'where' 到 运行 一个 OR MySql 查询。

从明显的错误消息中看出方法 select 将 return 一个结果集。我想我正在寻找不同 Zend DB 版本的来源。此答案适用于 2.9 版。

自定义 select 选项的方法如下:

$select = new Select;
$select->from("table_name");
$select->where("email='$str' OR uid='$str'");
$rowset = $this->table->selectWith($select);

希望这最终能对某人有所帮助。