0

我有这两段代码......在我的脑海中,它们是相同的,但一个有效,一个无效。希望有人能帮我解决这个问题。

此代码不起作用。它返回整个表,忽略 orderby 和限制。

public function getNews($limit = null)
{
    $select = new Select();

    $select->order('Date DESC');
    if($limit != null)
    {
        $select->limit($limit);
    }

    $result = $this->gateway->select($select);
    return $result;
}

此代码重新排列以使用匿名函数并且完美运行。

public function getNews($limit = null)
{
    $result = $this->gateway->select(
        function(Select $select) use ($limit)
        {
            $select->order('Date DESC');
            if($limit != null)
            {
                $select->limit($limit);
            }
        }
    );

    return $result;
}

任何见解将不胜感激。

4

1 回答 1

2

第二种方式是如何使用该TableGateway::select方法。您可以将一个简单的 where 谓词数组传递给它,或者传递给它,然后对对象Closure执行更复杂的操作。Select

查看TableGateway 上的文档以获取更多详细信息。

于 2013-04-19T00:58:12.903 回答