37 修改查询

admin 的头像
Submitted by admin on 星期二, 2015-06-09 02:56

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
动态选择查询的一个重要特性,就是其它模块能够修改它们。这就允许了其它模块把它们自己的限制注入到查询中,这可以是修改一个模块的行为,也可以是在查询运行时应用限制条件,比如节点访问限制。查询变更包含三个组成部分:tagging(标签化)、元数据(meta data)和hook_query_alter()。

Drupal版本:

36 创建一个新的扩展器

admin 的头像
Submitted by admin on 星期二, 2015-06-09 02:55

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

一个扩展器,就是一个简单的实现了SelectQueryInterface接口的类;并且在它的构造函数中,有两个参数:一个选择查询(或者是一个实现了SelectQueryInterface接口的对象)和一个DatabaseConnection对象。它必须重新实现SelectQueryInterface接口中的方法,并把它们传递给构造函数中指定的查询对象,在合适的时候返回自己。

Drupal版本:

35 使用一个扩展器

admin 的头像
Submitted by admin on 星期一, 2015-06-08 01:46

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

为了使用一个扩展器,你首先需要有一个查询对象。extend()方法由查询对象返回一个新的对象,来替换原有的查询对象。例如:

Drupal版本:

34 扩展器

admin 的头像
Submitted by admin on 星期一, 2015-06-08 01:42

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
选择查询支持“扩展器”这一概念。一个扩展器,就是在运行时向选择查询添加功能的一种方式。添加功能的方式有两种,可以是附加新的方法,也可以是改变已有方法的行为。

对于熟悉面向对象设计模式的人来说,扩展器就是装饰模式的一个实现。它通过一种灵活的方式,而不是采用子类继承的方式,从而向对象动态的追加额外的扩展功能。

Drupal版本:

33 调试

admin 的头像
Submitted by admin on 星期一, 2015-06-08 01:40

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

    为了检查查询对象在其生命周期中的特定一点所构建的SQL查询,可以调用它的__toString()方法:

Drupal版本:

32 总计查询

admin 的头像
Submitted by admin on 星期一, 2015-06-08 01:39

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

    任何查询都有一个对应的“总计查询”。总计查询返回的是源查询的结果集记录的总数。为了获得一个总计查询,可以使用countQuery()方法。

Drupal版本:

31 执行查询

admin 的头像
Submitted by admin on 星期一, 2015-06-08 01:36

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com​
一旦构建好了查询,就可以调用execute()来编译和运行查询了。

Drupal版本:

30 条件语句

admin 的头像
Submitted by admin on 星期一, 2015-06-08 01:35

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
条件语句是一个很复杂的课题,在选择、更新、删除查询中,都会用到条件语句。因此,我们把它独立出来,单独讲解。与更新和删除查询不同,选择查询有两种类型的条件语句:WHERE语句和HAVING语句。Having语句效果和WHERE语句完全相同,唯一的区别是它使用方法havingCondition()和having(),而不是condition()和where()。

Drupal版本:

页面

Subscribe to Think in Drupal RSS