我对在 DQL 中编写查询有点困惑。
来自官方文档:
$query = $em->createQuery('SELECT u FROM MyProject\Model\User u WHERE u.age > 20');
为什么命名空间的反斜杠没有转义?
由于这个原因,我在 Zend Studio 中收到警告,无论如何它都可以工作,但我认为这只是“运气”,因为\M 和\U 都不是有效的转义序列。
你怎么认为?使用该语法安全吗?还是更好地逃避 DQL 中的“\”?
$query = $em->createQuery('SELECT u FROM MyProject\\Model\\User u WHERE u.age > 20');
最佳答案
见 Dynamic namespace names (quoted identifiers) should escape backslash
看起来第一个语法只是幸运。 :) 我自己还没有尝试过,所以如果你说带转义的查询就像不带转义的查询一样,最好使用转义查询。
关于namespaces - 使用 DQL 转义命名空间中的反斜杠(Doctrine 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7047941/