0

以前は単純な 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() を基本的に行う方法を知っている人はいますか? または、もっと良い方法がありますか?

4

1 に答える 1

4

ドキュメントを読む:

http://framework.zend.com/manual/2.0/en/modules/zend.db.table-gateway.html

public function select($where = null);

したがって、次のようになります。

$resultSet = $this->tableGateway->select(array('customerId' => $CCID));
于 2013-05-23T14:02:50.063 に答える