namespaces - 使用 DQL 转义命名空间中的反斜杠(Doctrine 2)

标签 namespaces doctrine doctrine-orm dql backslash

我对在 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/

相关文章:

php - 忽略学说中缺失的实体

php - 教义数组 vs simple_array vs json_array

xml - 如何让 JDOM/XPath 忽略 namespace ?

c++ - 命名空间作用域在 C++ 中是如何工作的?

ruby - 如何在运行时在 ruby​​ 中设置命名空间?

doctrine-orm - Doctrine :不接受使用 equals 的 Select 语句

Symfony 5 多对多,带有额外字段表单生成器

zend-framework - 在 Doctrine 模型中使用静态查找方法是一个好习惯吗

symfony - FOSUserBundle 的多实体管理器

PHP - 获取给定命名空间的定义常量