Drupal 8 - найти узел по Uri - PullRequest
0 голосов
/ 02 июля 2019

Я не разработчик 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 голосов
/ 03 июля 2019

Чтобы получить идентификатор узла текущей страницы, просто используйте:

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

И лучший способ отладить ломающую страницу - просмотреть журналы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...