我有这两段代码......在我的脑海中,它们是相同的,但是一个有效,一个没有。希望有人可以帮我解决这个问题。
此代码不起作用。它返回整个表,忽略orderby和limit。
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;
}
任何见解都将受到赞赏。
答案 0 :(得分:2)
第二种方法是如何使用TableGateway::select
方法。您可以传递一个简单的谓词数组或Closure
,然后对Select
对象执行更复杂的操作。