如何通过Slug / alias代替ID获取节点数据

问题描述 投票:0回答:1

从React或其他类似的前端开发者那里,通过而不是ID获取远程节点数据是有用的。Drupal JSONAPI不这样做

drupal-8
1个回答
0
投票
  public function nodeBySlug($slug) {
    $database =  \Drupal::database();
    $query = $database->query(
      "SELECT nid
            FROM {node} n, {url_alias} a
            WHERE n.nid = SUBSTR(a.source, 7)
            AND a.alias = '/$slug'"
    );
    $result = $query->fetchObject();
    if ($result !== false) {
      $node = Node::load($result->nid);
      return new JsonResponse($node->toArray());
    }

    //return new JsonResponse(json_encode(false));
    return new JsonResponse(false);
  }
© www.soinside.com 2019 - 2024. All rights reserved.