我有一個問題,當我要添加哪裏條款,以我的分頁:分頁和WHERE子句
這工作得很好:
$builder = User::orderBy(
$criteria->getOrderBy(),
$criteria->getOrderWay()
)
->paginate(
$criteria->getPerPage(),
array('*'),
'',
$criteria->getPage()
);
return $builder;
如果我想補充那裏的條件我可以的,如果我做到以下幾點(它的工作原理BTW):
$builder = User::orderBy(
$criteria->getOrderBy(),
$criteria->getOrderWay()
)->where(array(array('state','=',0)))
->paginate(
$criteria->getPerPage(),
array('*'),
'',
$criteria->getPage()
);
return $builder;
但如果我想這樣做沒有鏈接:
$builder = User::orderBy(
$criteria->getOrderBy(),
$criteria->getOrderWay()
);
$builder->where(array(array('state','=',0)));
$builder->paginate(
$criteria->getPerPage(),
array('*'),
'',
$criteria->getPage()
);
return $builder;
我得到以下異常:
調用未定義的方法照亮\數據庫\查詢\生成器::末頁()
所以分頁不適用,但是爲什麼呢?
如何在不重複代碼的情況下添加where子句?
$arrClauses = /** example **/;
if(empty($arrClauses)) {
$builder = User::orderBy(
$criteria->getOrderBy(),
$criteria->getOrderWay()
)
->paginate(
$criteria->getPerPage(),
array('*'),
'',
$criteria->getPage()
);
return $builder;
} else {
$builder = User::orderBy(
$criteria->getOrderBy(),
$criteria->getOrderWay()
)->where($arrClauses)
->paginate(
$criteria->getPerPage(),
array('*'),
'',
$criteria->getPage()
);
return $builder;
}
我不知道它是否會做,但嘗試將其存儲在一個變量而不是鏈接它。 $ builder = $ builder->其中(... –
是的,這工作,不得不檢索實例 –