条款或Zend框架中的位置2

时间:2013-10-11 09:43:16

标签: zend-framework2 zend-db

我是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

感谢。

2 个答案:

答案 0 :(得分:1)

查看文档here。 因此,$where也可以是stringClosure

在你的情况下称之为:

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

哦,我错过了第一个条件:

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

编辑:

您可以确保保留= array()默认值。我不知道为什么,但我把它与类型暗示混淆了。 (array $where)

答案 1 :(得分: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,
) );