当我选择要在我的站点上显示的不同内容时,我试图理解Drupal生成的SQL查询,这样我就可以编写我自己的php过滤器。
我每次都会在查询中看到这个
SELECT...
FROM
{node} node
WHERE...{node}指的是我使用的内容类型是什么意思?
发布于 2015-09-01 14:15:00
它是引用数据库中的节点表的抽象方法。这个表示法在执行查询之前由Drupal转换为表的实名(在大多数情况下,对于大多数配置,{node}将在执行时简单地变成node )。使用此表示法允许Drupal实例使用表前缀,而无需生成查询的代码就必须了解这些细节。
表名看起来是重复的({node} node),因此表名{node}被映射到可以在查询的其他地方使用的别名node。如果您已经将站点配置为使用"dev_“表前缀,那么SELECT node.status FROM {node} node...将被翻译为SELECT node.status FROM dev_node node...,从而允许node.status字段引用正确的表,而不必知道为站点配置了表前缀这一事实。对于这个简单的示例来说,这很愚蠢,因为您可以只编写{node}.status,但是对于更复杂的示例,特别是使用多个联接,设置别名可能很有用。
https://drupal.stackexchange.com/questions/171795
复制相似问题