ORM expr计算空字符串

时间:2015-11-09 19:57:15

标签: symfony

我一直在使用并且仍在学习查询expr()。我有一个复杂的查询,我不能使用,如果首先检查参数是否为'' - 空字符串。 我必须使用类似的东西在内部和X中使用嵌套的orX进行检查:

->andWhere($expr->orX($expr->eq(':sid', ''), $expr->neq('s.id', ':sid')))

注意:我知道这行可以通过首先使用if来完成,我只是用它作为一个例子,我得到错误说:

Error: Expected Literal, got ' OR '

我真的需要比较expr()里面的空字符串,怎么做?

1 个答案:

答案 0 :(得分:6)

因为<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="vertical"> <Chronometer android:id="@+id/chronometer1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="74dp" android:fontFamily="sans-serif-light" android:format="00:00:00" android:textSize="48sp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="horizontal"> <TextView android:id="@+id/contraction_text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Time since last start timer:" /> <Chronometer android:id="@+id/chronometer2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="sans-serif-light" android:format="00:00:00" android:textSize="12sp" /> </LinearLayout> <ToggleButton android:id="@+id/toggleButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="sans-serif-medium" android:textOff="Start Timer" android:textOn="Stop Timer" /> </LinearLayout> 不是空字符串。它什么都没有,所以它在DQL / SQL中的评估结果为零。通常,学说需要一个命名参数。要么创建一个以获取引用的空字符串,要么提供自己引用的空字符串。

命名参数:

''

自己引用:

$qb->expr->eq('foo', ':foo');
$qb->expr->setParameter('foo', '');