0

ContactsTable.php モジュールと次のような関数があります。

public function getContactsByLastName($last_name){
    $rowset = $this->tableGateway->select(array('last_name' => $last_name));
    $row = $rowset->current();
    if (!$row) {
        throw new \Exception("Could not find row record");
    }
    return $row;
}

これは問題ありませんが、1 行しか返されません。問題は私のデータベースにあり、同じ姓の複数のレコードがあるので、私の質問は次のとおりです。データのセットを返すにはどうすればよいですか?

私はこれを試しました:

$where = new Where();  
$where->like('last_name', $last_name);
$resultSet = $this->tableGateway->select($where);
return $resultSet;

しかし、うまくいきません。

4

2 に答える 2

3

最初の関数は期待どおりに機能するはずです。行を削除するだけです

$row = $rowset->current();

したがって、完全な関数は次のようになります。

public function getContactsByLastName($last_name){
        $rowset = $this->tableGateway->select(array('last_name' => $last_name));

        foreach ($rowset as $row) {
            echo $row['id'] . PHP_EOL;
        }
}

ドキュメントで見つけることができる詳細情報http://framework.zend.com/manual/2.2/en/modules/zend.db.table-gateway.html

于 2013-10-21T11:17:13.680 に答える