Drupal 8-通过Uri查找节点

时间:2019-07-02 20:38:12

标签: drupal drupal-8

我不是Drupal开发人员,但我必须修复似乎由于节点而中断的网站,所以我试图弄清楚它是哪个节点以及导致错误的原因。因此,我将getRouteName中的Url.php方法的核心更改为:

  public function getRouteName() {
    if ($this->unrouted) {

        $x = Url::fromUri($this->getUri());
        dd(var_dump($x));
        die(' === THIS IS CAUSING THE ERROR');
      throw new \UnexpectedValueException('External URLs do not have an internal route name.');
    }

    return $this->routeName;
  }

哪个给我这个:

object(Drupal\Core\Url)#3626 (12) { ["urlGenerator":protected]=> NULL ["urlAssembler":protected]=> NULL ["accessManager":protected]=> NULL ["routeName":protected]=> NULL ["routeParameters":protected]=> array(0) { } ["options":protected]=> array(0) { } ["external":protected]=> bool(false) ["unrouted":protected]=> bool(true) ["uri":protected]=> string(46) "base:node/2fd814b7-2c74-4aa7-8e28-95625e2f9b8c" ["internalPath":protected]=> NULL ["_serviceIds":protected]=> array(0) { } ["_entityStorages":protected]=> array(0) { } } === THIS IS CAUSING THE ERROR

然后,我尝试使用以下uuid查找节点:2fd814b7-2c74-4aa7-8e28-95625e2f9b8c,但是它在数据库中不存在。我正在寻找整个数据库以尝试找到它,但似乎不存在。

我有点迷茫。此调试信息能否将我带到导致错误的内容?

1 个答案:

答案 0 :(得分:0)

要获取当前页面的节点ID,只需使用:

\Drupal::request()->get('nid')

而且,调试中断页面的最佳方法是查看日志。