在这里几天进入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