biko
biko

Reputation: 520

Zend DB call to undefined method where()

The below query returns a Call to undefined method Zend\Db\ResultSet\ResultSet::where() error.

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

This however works:

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

Here are the dependencies:

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;

Anyone knows why? I'm basically just trying to use 'where' to run an OR MySql query.

Upvotes: 0

Views: 1336

Answers (1)

biko
biko

Reputation: 520

Figured it out from the obvious error message indicated that the method select would return a result set. I think I was looking at sources for a different Zend DB version. This answer is for version 2.9.

Here's how to customize the select options:

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

Hope this eventually helps someone.

Upvotes: 1

Related Questions