在這裏幾天進入PHP,我有一個讓我真的難倒了。我正在使用Propel2根據用戶選擇的過濾器從數據庫中檢索行。最終,我希望能夠有很多用戶可以選擇的過濾器,然後生成一個自定義Propel2調用來檢索記錄。由於指數數量的可能查詢,我無法使用If/Then。然而,下面我的例子的每個方法都失敗了。Propel2使用函數構建查詢,然後調用查找
$dealfinder = DealsQuery::create()->filterByStillvalid(1)->orderByInception('DESC');
if(isset($dept)) {
$dealfinder->filterByCategory($dept);
}
if (isset($early)) {
$oneHourAgo = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s'))- $dealDelay);
$dealfinder->filterByInception(array('max' => $oneHourAgo));
}
$dealfinder->paginate($page = $pageNum, $maxPerPage = $maxColumn*$maxRow);
以上的回報代碼:
deals.stillvalid=:p1, deals.inception<=:p1
這可能只是一個PHP函數鏈語法的東西,所以這裏是一個工作Propel2調用會是什麼樣子:
$dealfinder = DealsQuery::create()->filterByStillvalid(1)->filterByCategory($dept)
->orderByInception('DESC')->filterByInception(array('max' => $oneHourAgo))
->paginate($page = $pageNum, $maxPerPage = $maxColumn*$maxRow);
我將非常感謝幫助。謝謝。
對於什麼是值得的,我用我有限的知識採取了許多方法。這是我在這裏模擬的一個方法,他說他爲他工作:https://stackoverflow.com/questions/36401454/dynamic-table-name-in-propel-query/36524417 – ZoomStop