Zend Framework 2 - Where子句

时间:2013-01-17 09:31:40

标签: php zend-framework2

我想用这个方法添加一个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。

2 个答案:

答案 0 :(得分: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;
    }

答案 1 :(得分:1)

你也可以$sql->select()->where(array('status' => 1))$table->select(array('status' => 1))(烦人,希望他们使用相同的语法)。

你传递一个带有映射column => value的关联数组(因为它是一个数组,你可以给它多个子句)。 Diemuzi的方式适用于复杂的标识符,但这是一种更易读的简单比较方法。