Drupal查询生成器

我经常使用Drupal的视图模块来构建我粘贴到代码中的SQL。 它非常了解Drupal数据库模式。

有没有一个模块可以给我这个功能,或者我可以将这个因素排除在Views之外吗?


将Views模块扩展为更好地支持程序化使用会很酷,但在此之前,您可能想要看看我的一个同事尝试创建类似于这样的事物:http://github.com/hugowetterberg / query_builder

与此相关的可能是Services项目尝试将视图数据作为服务提供,我们现在正在将其分解到它自己的模块中:http://drupal.org/node/709100可能值得关注,因为它将会需要对视图进行一定程度的编程访问。

以编程方式访问Views的模块的另一个例子是Development Seeds Litenode:http://developmentseed.org/blog/2009/feb/4/litenode

更新15 / 12-2010:Drupal 7中的EntityFieldQuery几乎就像使用Views以编程方式构建查询 - 区别在于EntityQueryBuilder仅在实体和字段上工作,并且还因为它实际上可以针对任何类型的正在使用的现场存储 - 例如。 像MongoDB这样的NoSQL数据库。 例子可以在这里找到:http://drupal4hu.com/node/267


虽然这不是完成任务的理想方式,但您可以按如下所示获取视图的结果:

$view = views_get_view('search');
$view->set_display('main');
$view->set_items_per_page(0);
$view->execute();

$items = array();
foreach ($view->result as $row) {
  $items[] = $row;
}

这样,无论何时修改视图查询,都不必重新复制代码。 我同意视图需要分解成查询构建API和UI。


是的,我认为视图是最好的知道什么表用于当前字段,因为许多模块(和更多的视图)具有钩子函数,提供有关此字段,表和与其他表的连接类型的一些信息。

你也可以通过以下方式阅读表格和字段的方案:http://drupal.org/project/schema

链接地址: http://www.djcxy.com/p/45195.html

上一篇: Drupal Query builder

下一篇: how can exec change the behavior of exec'ed program