3

このメソッドでwhere句を追加したいと思います。

public function fetchAll()
{
    $resultSet = $this->select();
    return $resultSet;
}

このように追加しました。

public function fetchAll()
{
    $resultSet = $this->select();
    $resultSet->where("status = ?", 1);
    return $resultSet;
}

しかし、それは以下のエラーを示しました。

致命的なエラー:未定義のメソッドZend \ Db \ ResultSet \ ResultSet :: where()を呼び出します

上記の方法でWHERE、OR WHERE、GROUP、ORDERを追加するのを手伝っていただけませんか。

4

2 に答える 2

1

$sql->select()->where(array('status' => 1))またはを実行することもできます$table->select(array('status' => 1))(迷惑ですが、同じ構文を使用したい場合)。

連想配列とマッピングをどこに渡すかcolumn => value(そしてそれは配列なので、複数の句を与えることができます)。Diemuziの方法は複雑な識別子には適していますが、これは単純な比較のためのより読みやすい方法です。

于 2013-01-20T22:45:05.353 に答える
1

うまくいけば、これはあなたを助けるでしょう:

    public function Profile($accountid)
    {
        $result = $this->select(function (Select $select) use ($accountid) {
            $select
                ->columns(array(
                    'datefrom',
                    'available',
                    'used',
                    'details'
                ))
                ->where($this->adapter->getPlatform()->quoteIdentifier('accountid') . ' = ' . $this->adapter->getPlatform()->quoteValue($accountid));
        });

        $row = $result->current();

        if (!$row) {
            throw new \Exception('could_not_find_row');
        }

        return $row;
    }
于 2013-01-17T14:53:17.247 に答える