6.3 实验室和其他信息

总结

本课我们看到了在 Drupal 8 中如何查询和加载实体。Drupal 8 把 7 中的 EntityFieldQuery 类进行了大修,提供了查询内容实体和配置实体的健壮 API。我们只看了查询内容实体,但查询配置实体用法是相同的。

我们也看到了怎样通过查询实体得到的 ID 加载实体的方法。接下来我们会看下 Drupal 8 中如何定义内容实体类型,要复习下这个在 Drupal 7 是怎么做的,请查看 Sitepoint articles

完整步骤:

  1. 在内容类型 Article 内追加 5 个节点(node),至少一个标题为”ipsum lorem“
  2. 拷贝课程 1 中的 page_example 模块,重命名为 query_example。
  3. 重命名相应的文件、术语、方法和类。
  4. 改变 PageExampleController 类
    a. 创建 simpleQuery() 方法,返回 ID 列表。
    b. 创建方法 basicQuery(),返回 simpleQuery() 产生的数组。
    c. 创建方法 intermediateQuery(),进行条件查询测试。
    d. 创建方法 conditionalStaticQuery(),返回 intermediateQuery() 产生的数组。
    e. 创建方法 advancedQuery(),进行 OR 条件测试。
    f. 创建方法 conditionalGroupQuery(),返回 advancedQuery() 方法数组。
    g. 编辑 YAML 路由文件,为上面 3 种查询追加响应路径。

你可以拷贝 QueryExampleController.php 代码,避免手动创建每个方法。

额外练习

创建个页面,使用 entity.manager 和 entity.query 服务显示 simpleQuery() 返回的那些节点的 teaser。

评论 (写第一个评论)