0

我想使用单个查询来检索:

  • 任何类别的项目(未应用过滤器);
  • 仅限单一类别的项目(仅限于特定类别);

为此,我应该能够编写一个 Doctrine 查询,该查询仅在满足某些条件时才包含 where 子句(例如,存在 URL 的一部分),否则查询中不包含 where 子句。

当然,我尝试使用 If 语句,但由于学说查询是链式的,因此会引发错误。

所以我想解决方案可能是某种(对我来说未知)以非链接形式编写学说查询的方式(通过不让每一行以“->”开头,并且让查询的每一行以分号“;”结尾)

这样我猜就可以使用 IF 语句。

或者,也许已经有一些非常简单的解决方案来解决这个问题?

感谢您的回复!

4

2 回答 2

1

我不熟悉 Codeigniter,但你不能写这样的东西吗?

$q = Doctrine_Query::create()
    ->from('items');

if ($cat)
    $q->where('category = ?', $cat);
于 2010-11-07T01:44:48.993 回答
0

在您的模型中,将条件where作为参数传递给函数。在下面的示例中,我假设函数名称为filter_query()并将where条件作为参数传递。

function filter_query($condition=''){

$this->db->select('*');
$this->db->from('TABLE NAME');
   if($condition != ''){
    $this->db->where('condition',$condition);
   }
}

在上面的例子中,我使用了Codeigniter 的 Active Record Class

于 2010-11-07T04:50:36.767 回答