以前は単純な fetchAll() メソッドを持っていたクラスがあります。ZF2 チュートリアルから取得しました。ResultSet と TableGateway を使用しています。顧客 ID が渡された場合に、その顧客 ID を持つ行のみが返されるように、チェックできる引数を取得する必要があります。
メソッドは次のようになります。
public function fetchAll($CCID = null)
{
if($CCID == null){
$resultSet = $this->tableGateway->select();
return $resultSet;
} else {
// Same as above, only where customerId = $CCID
return $resultSet;
}
}
私はこれを試しました(使用Zend\Db\Sql\Sqlを追加:
$resultSet = $this->tableGateway->select->where(array('customerId' => $CCID));
これはほぼ完全な推測でしたが、理にかなっているように見えたので試してみました。私の Module ファイルでは、TableGateway ファクトリは次のようになります。
'JobsTableGateway' => function($sm){
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new Job());
return new TableGateway('runningjobs', $dbAdapter, null, $resultSetPrototype);
},
「where」部分を除いて、条件の最初の部分のように標準の fetchAll() を基本的に行う方法を知っている人はいますか? または、もっと良い方法がありますか?