2

ZF2初心者です。このようなクエリを作成するにはどうすればよいですか?

SELECT * FROM users WHERE id = 1 AND status != 2

私のコード モデル:

public function getUser($where = array())
    {
        $select = $this->sql->select();
        $select->from(self::TABLE);
        $select->where($where);
        $select->order('name ASC');
        return $statement->execute();
    }

私が使用している: Zend\Db\Sql

ありがとう。

4

2 に答える 2

1

こちらのドキュメントをご覧ください。または$whereも同様stringですClosure

あなたの場合は次のように呼び出します:

$user = $object->getUser('status != 2');

ああ、私は最初の条件を逃しました:

$user = $object->getUser(array('id = 1', 'status != 2'));

編集:

= array()確かにデフォルト値のままにしておくことができます。理由はわかりませんが、タイプヒンティングと混同しました。(array $where)

于 2013-10-11T09:49:49.480 に答える
1
public function getUser( where = array() ) {
    $select = $this->sql->select();
    $select->from(self::TABLE);

    $select
       ->where->nest()
           ->equalTo( 'id' => where['id'] )
           ->or
           ->notEqualTo( 'status' => where['status'] )
       ->unnest();

    $select->order('name ASC');

    return $statement->execute();
}

次のように使用します。

getUser( array(
    'id'     => 1,
    'where'  => 2,
) );
于 2013-10-12T16:52:14.430 に答える